Изменение фронта очереди массивов в C ++ STL при вставке массива в очередь - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь реализовать очередь массивов в C ++ STL, но всякий раз, когда я помещаю sh новый массив в очередь и пытаюсь получить доступ к началу очереди, он возвращает мне значение последнего добавленного значения массива. Вот код, который я использую;

queue<int*> a;
  int temp[2];
  temp[0]=1;
  temp[1]=1;
  a.push(temp);
  cout<<"front "<<a.front()[0]<<"back "<<a.back()[0]<<"\n";
  cout<<"size: "<<a.size()<<"\n";

  temp[0] = 2;
  temp[1] = 2;
  a.push(temp);
  cout<<"front "<<a.front()[0]<<"back "<<a.back()[0]<<"\n";
  cout<<"size: "<<a.size()<<"\n";
  temp[0] = 3;
  temp[1] = 3;
  a.push(temp);
  cout<<"front "<<a.front()[0]<<"back "<<a.back()[0]<<"\n";
  cout<<"size: "<<a.size()<<"\n";

Вот вывод приведенного выше кода: вывод кода

, но я ожидал, что вывод будет следующим:

front 1back 1
size 1
front 1back 2
size 2
front 1back 3
size 3

Кто-нибудь может объяснить, почему он так себя ведет?

...