C++ 通过参考返回的优势?

C++ 通过参考返回的优势?,c++,C++,我遇到了代码,在类中,一个成员函数通过引用返回。那样做有什么好处?例如: class SomeClass { std:vector<int> some_vals; // some functions that modify some_vals public: const std::vector<int>& get_some_vals() const { return some_vals; } }; class-SomeClass{ std

我遇到了代码,在类中,一个成员函数通过引用返回。那样做有什么好处?例如:

class SomeClass {
    std:vector<int> some_vals;
    // some functions that modify some_vals
public:
    const std::vector<int>& get_some_vals() const { return some_vals; }
};
class-SomeClass{
std:一些向量值;
//修改某些值的某些函数
公众:
const std::vector&get_some_vals()const{return some_vals;}
};
然后在使用该功能时:

SomeClass my_obj;
const vector<int>& some_vals = my_obj.get_some_vals();
SomeClass我的对象;
常量向量&some_vals=my_obj.get_some_vals();

这样做而不只是返回std::vector有什么好处?

试着在一张纸上计算出,当这个向量有一百万个值时会发生什么。不确定你的意思,但如果我不得不猜测,我假设你指的是复制向量两次,每次都构造所有值,以防按值返回?或者我还缺什么?不,差不多了。你基本上已经回答了你自己的问题。但是我认为返回值优化会通过移动向量而不是复制来解决这个问题,以防返回为常量。不是吗?@user_185051移动不会使向量成员不可用吗?我怀疑RVO能否在那里适用。这只适用于函数局部定义的变量。