我不明白为什么以下不起作用:
queue<int*> q;
int counter = 1;
for (int i = 0; i < 3; i++) {
int a[1] = {counter};
q.push(a);
counter++;
}
while (!q.empty()) {
int *top = q.front();
q.pop();
cout << top[0] << endl;
}
Run Code Online (Sandbox Code Playgroud)
它应打印出来:1 2 3,但打印出3 3 3.这是因为每次运行循环后队列中的指针都是相同的.为什么会这样?