我有一个函数
void assign(std::vector<std::vector<double>> avg, int k) {
double* ptr=&avg[k-1][0]
//other stuff, but above is only line involving "avg" variable
}
但是函数运行速度比我想要的慢,因为我通过值而不是引用传递。如果我尝试以下操作:
void assign(const std::vector<std::vector<double>>& avg, int k) {
double* ptr=&avg[k-1][0]
//other stuff
}
然后我收到错误 cannot convert from const_Ty * to double*
。如何让函数通过引用传递 avg
?
最佳答案
您不能直接或间接修改const
对象。这包括将其分配给可以修改的对象(非常量)。
有 2 个选项:要么使 ptr
为常量,要么移除参数的常量性。前者会使指针只读(这可能是好的,也可能不是),而后者会打开对更改的引用(这在大多数情况下并不是一件好事)。
你也可以考虑是否真的需要那个指针。
关于c++ - 如何在 C++ 中将 const 引用分配给函数内的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56464631/