我正在分析一个旧的遗留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不再使用.
你可以像这样声明一个引用变量:
vector<someClass> myVec1;
vector<someClass>& myVec2 = myVec1;
Run Code Online (Sandbox Code Playgroud)
但是,如果myVec1超出范围myVec2将是不好的.此外,如果您使用的是c ++ 11编译器,您的矢量可以"移动"而不是复制.
在不知道您的用例的情况下很难说您需要做什么.
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |