gpt4 book ai didi

c++ - 函数中 void const * 参数的用途

转载 作者:太空狗 更新时间:2023-10-29 23:35:51 24 4
gpt4 key购买 nike

我正在尝试使用 VLFeat 中的库函数,该函数要求数据为 const void *。我真的不明白如何创建数据然后将其传入。

This is the function call :

void vl_kmeans_init_centers_with_rand_data  (VlKMeans * self, void const * data,
vl_size dimension, vl_size numData, vl_size numCenters)

数据参数是让我感到困惑的那个。我尝试构建一个随机数据矩阵来测试 kmeans clustering function ,但我不知道如何使用这些数据。换句话说,这个函数需要这个参数。但是为了让它有用,我必须了解如何转换/创建/加载数据以使其工作。这意味着,我需要了解参数中 const void * 类型的用途。

如有任何帮助,我们将不胜感激。

注意:我确实理解 const 的含义,但是,例如,我无法弄清楚如何迭代构建 const 数据(即用双 for 循环填充矩阵)

谢谢!

最佳答案

const,尽管标准化委员会尽最大努力让您感到困惑,但这并不意味着“常量”。意思是“只读”。

通过将其参数声明为指向const 的指针,此函数声明您的数据不会在其传入的过程中被复制,但函数的代码将只能读取它,不要修改它。

因此,只需以常规方式(非const,因为需要用循环来完成它)构建您的矩阵,然后将其传入,确信它会返回不变。

除非...函数的代码抛弃了常量。这应该让编写它的人立即被解雇。

关于c++ - 函数中 void const * 参数的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com