【发布时间】:2015-07-21 04:19:23
【问题描述】:
我正在尝试制作指向整数数组的指针的深层副本,但无法确定哪些代码不必要地冗长以及需要哪些代码。
我试图复制的指针只是一个简单的整数数组。
int* vertexArray = new int[G->size()];
它包含数字 0 到 size()-1 作为其值。我的第一个想法是创建一个等于顶点数组的新 int*,
int* shortestTour = vertexArray
但我相信每次我置换 vertexArray 时都会使 shortestTour 发生变化。是用这样的循环制作深拷贝的唯一方法
for(int i=0; i<G->size(); i++){
shortestTour[i] = vertexArray[i];
}
然后每次我发现比当前最短的游览/路径短时运行该循环?
编辑:这是针对旅行商问题的简单、蛮力实现。
【问题讨论】:
-
为什么不直接使用
std::vector呢? -
您也可以使用
std::copy()来执行此操作。实际上不清楚你在问什么。 -
您需要深拷贝吗?还是分享数据就够了?