C++通过引用相当于PHP分配?

2 c++ reference

我正在分析一个旧的遗留C++应用程序.

我看到有很多vector<class>var声明:

vector<someClass> myVec1;
vector<someClass> myVec2;
vector<someClass> myVec3;
Run Code Online (Sandbox Code Playgroud)

这个载体可以长得很多.在代码中我还发现有时它已完成:

myVec2 = myVec1;
Run Code Online (Sandbox Code Playgroud)

该分配操作实际上产生数据的副本,并且如果矢量非常大,则操作很慢.

是否有任何方法myVec2只分配给引用myVec1而不必重构所有依赖于这些变量的代码(即动态分配它们)?

请注意,分配后myVec1不再使用.

Ker*_* SB 7

你可以尝试myVec2.swap(myVec1);,这应该非常快.既然你不再关心myVec1,它现在包含原始内容并不重要myVec2.


Tra*_*ork 5

你可以像这样声明一个引用变量:

vector<someClass> myVec1;
vector<someClass>& myVec2 = myVec1;
Run Code Online (Sandbox Code Playgroud)

但是,如果myVec1超出范围myVec2将是不好的.此外,如果您使用的是c ++ 11编译器,您的矢量可以"移动"而不是复制.

在不知道您的用例的情况下很难说您需要做什么.