c++ - 函数返回对 vector 元素的引用

标签 c++ reference stdvector

我不知道如何返回对 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/

相关文章:

c++ - AudioOutputUnitStart 非常慢

python - 在 Python 中传递数组/列表的子集引用作为参数

C++ 进程因状态 3 混淆而终止

c++ - std::vector 带有指向具有自定义类型的静态数组的指针

c++ - vector.insert() 有问题

c++ - 声明进入不同的声明区域

c++ - 如何在 Windows 上构建 lib2geom

variables - 将 "mut"放在变量名之前和 ":"之后有什么区别?

c++ - 无法 std::shuffle?

c++ - VC9 中的字符串流错误? "Cannot access private member"