0
我試圖在for循環中將int數組置換添加到vector中,但是當我離開一個循環時,每個vector元素都是相同的。將數組添加到for循環with random_shuffle
task_number = 6;
vector<int*> P_0;
int* order = new int[task_number];
for (int k = 0; k < task_number; k++)
order[k] = k;
for (int i = 0; i < 3; i++)
{
random_shuffle(order, order+task_number);
cout << endl;
P_0.push_back(order);
for (int j = 0; j < task_number; j++)
cout << P_0[i][j] << " ";
}
//////////////////////////////////////
cout << endl<<endl;
std::vector<int*>::iterator it;
for (it = P_0.begin(); it != P_0.end(); ++it)
{
for (int j = 0; j < task_number; j++)
cout << (*it)[j] << " ";
cout << endl;
}
輸出:
1 3 0 2 5 4
1 4 5 3 2 0
1 3 5 4 0 2
1 3 5 4 0 2
1 3 5 4 0 2
1 3 5 4 0 2
是什麼問題?我做錯了什麼?