【发布时间】:2015-05-31 22:08:44
【问题描述】:
我正在尝试在 for 循环中将 int-array 排列添加到向量中,但是当我离开循环时,每个向量元素都是相同的。
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
有什么问题?我做错了什么?
【问题讨论】: