【发布时间】:2020-06-18 19:28:04
【问题描述】:
我想创建一个通过引用返回向量的函数。但是返回的向量(returned_v)与vec.v不同,而是一个复制的向量。这意味着向量是按值返回的。如何从vector_reference()获取引用向量?
class Vec {
public:
std::vector<int> v = {1, 2, 3};
std::vector<int>& vector_reference() {
return v;
}
};
int main() {
Vec vec;
std::vector<int> returned_v = vec.vector_reference();
returned_v.clear();
std::cout << returned_v.size() << std::endl; // result: 0
std::cout << vec.v.size() << std::endl; // result: 3
return 0;
}
【问题讨论】:
-
除了解决手头的问题,还有什么目的?培训?
-
代码是简化版,让问题更清楚。 vector_reference() 用于根据实例的状态返回成员向量之一。
-
好的。我没有得到问题描述。
标签: c++ vector pass-by-reference