【发布时间】:2012-11-12 09:39:05
【问题描述】:
在 C++ 中,如何复制现有向量指向相同的分配内存?
例如:
vector<int> o1;
o1.push_back(1);
vector<int> o2;
//Make o2 share same memory as o1
o2[0]=2;
cout << o1[0]; //display 2
编辑:我还不清楚目标:如果 o1 在堆上分配并被销毁,我如何创建一个对象 o2 指向与 o1 相同的分配内存以将其保留在 o1 之外范围?
【问题讨论】:
-
你不能。没有办法使建议的解决方案起作用。目前未公开的问题可能有解决方案,但需要明确要求。
-
您可以将
o2设为参考:vector<int>& o2(o1); -
使用 shared_ptr
> 或 boost::shared_array 尽管使用 boost::shared_array 你不能调整你的数组大小。