我不知道如何返回对 vector 元素的引用。 [] 和 at() 正在返回引用,不是吗?
但是当我尝试以下操作时,它不会编译。
我正在使用 Visual C++,它给出了 cannot convert from 'const float' to 'float & 错误。
T& GetElement(size_t x) const {
return _vector.at(x);
}
GetElement是方法,_vector是成员变量。
最佳答案
这不会编译,因为您试图返回对 vector 元素的非常量引用,该元素本身是 const
。
vector 是 const
的原因是您的成员函数被声明为 const
:
T& GetElement(size_t x) const // <<== Here
这个 const
-ness 标记被传播到所有成员,包括 _vector
。
要解决此问题,请将 const
添加到返回的引用类型 ( demo )。
关于c++ - 函数返回对 vector 元素的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20711400/