C++ 按值返回集合

标签 c++ collections

我想让我的集合在类之外不可变。

来自这里:

public:    
    vector<int>& getValues(){
        return values;
    }
private: 
    vector <int>& values;

为此:

public:    
    vector<int> getValues(){
        return values;
    }
private: 
    vector <int>& values;

它会正常工作吗?

最佳答案

它会工作,但你最好返回一个 const 引用:

const vector<int> & getValues() const {
    return values;
}

此外,在类中存储引用通常(不总是)是一个错误。您可能需要一个值,或者可能需要一个指针。

关于C++ 按值返回集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5909600/

相关文章:

c++ - 试图在 C++ 中对一个简单的字符串进行排序

java - 按 bean 类中的 opendate 属性对 List<CrExcessMaster> 进行排序

mongodb - 在 MongoDB 中,如果删除了集合,索引也会自动删除吗?

java - 根据流中的匹配条件返回元素

c++ - 如何让 LLVM 更喜欢一条机器指令而不是另一条机器指令?

c# - 内存带宽使用

c# - 遍历 ICollection 并设置为 null

collections - 从 Vec<Vec<char>> 创建一个 Vec<BTreeSet<char>>

c++ - Qt 与 constexpr 字符串文字

c++ - 我应该在这里使用 goto 语句吗?