我很确定这是一些指针业务,但我已经离开了C++一段时间了.
基本上,我有一个类,有一个方法getVector()返回std::vector它已存储为类变量.
我想访问这些元素,但不是每次getVector()调用时都复制整个向量.对此有什么正确的解决方法?存储为类变量的向量本身不是指针.
返回对向量的引用.
如果调用范围应该能够修改向量:
class MyClass {
std::vector<foo> v;
public:
std::vector<foo>& getVector() {
return v;
}
};
Run Code Online (Sandbox Code Playgroud)如果调用范围不需要修改向量:
class MyClass {
std::vector<foo> v;
public:
const std::vector<foo>& getVector() const {
return v;
}
};
Run Code Online (Sandbox Code Playgroud)两者都是完全"安全"的,因为向量不是函数范围的本地.