我声明了动态数组int *idArray;
,我想将值复制到tempArray
,然后我将更改tempArray
的顺序,但是我不想更改顺序idArray
,我该如何写它?我尝试实现它,但是当tempArray
的顺序更改时,idArray
的顺序也更改。
int *idArray = new int[size];
int *tempArray = idArray;
int m, n;
for(int k = 0; k < size; k++) {
m = rand() % size;
n = tempArray[m];
tempArray[m] = tempArray[k];
tempArray[k] = n;
}
最佳答案
std::vector<int> idArray(size);
std::vector<int> tempArray = idArray;
问题解决。
另外,您可以使用
std::random_shuffle
-您不必自己洗改向量。关于c++ - 如何在C++中复制动态数组的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10208863/