复制在构造函数 [duplicate] 中通过引用传递的向量

Copying a vector passed by reference in constructor [duplicate]

提问人:Tyler D 提问时间:9/17/2020 更新时间:9/17/2020 访问量:179

问:

我的类包含一个向量,在实例化它时,我想用一些输入向量初始化它的向量:

class Test {
public:
    Test(std::vector<int>& input_vec) : vec(input_vec) {};
    std::vector<int> vec;
};

int main()
{
    std::vector<int> a{1,2,3};
    
    Test t(a);
}

出于效率原因,我通过引用传递给 的构造函数,以防输入向量非常大。我有两个担忧:aTest

  1. 就我而言,通过引用传递它实际上更有效,还是因为我只是复制它而多余?
  2. 我通过引用传递向量,然后获取它的副本,这是否会带来内存风险?
C++ 向量

评论

1赞 cigien 9/17/2020
骗子应该回答你的问题。如果您有一个特定问题未得到解答,请编辑该问题。
0赞 Yksisarvinen 9/17/2020
@cigien 这个答案太老了,而且太专注于可能的优化,以至于很难添加任何关于 C++11 的信息......
1赞 cigien 9/17/2020
@Yksisarvinen嗯,你是对的。为此必须有一个规范的骗局。如果我找到它,我将编辑复制目标。不过,我宁愿不重新打开它。
1赞 cigien 9/17/2020
添加了更合适的复制品。

答: 暂无答案