如何在C++中复制动态数组的值

Lov*_*eTW 0 c++ arrays

我声明一个动态数组int *idArray;,我想将值复制到a 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; 
}
Run Code Online (Sandbox Code Playgroud)

Pup*_*ppy 6

std::vector<int> idArray(size); 
std::vector<int> tempArray = idArray;
Run Code Online (Sandbox Code Playgroud)

问题解决方案.

此外,你可以使用std::random_shuffle- 你不必自己洗牌.

  • 你忘了`random_shuffle` :) (2认同)