我声明了动态数组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/

10-11 19:03