pop()
(Visual Studioの2015)を呼び出した後priority_queue
のtop()
変化によって返さconst参照pop()を呼び出した後にtop()の戻り値が変化するのはなぜですか?
priority_queue<int> queue;
queue.push(1);
queue.push(2);
queue.push(3);
const int & m = queue.top();
cout << m << endl; // 3
queue.pop();
cout << m << endl; // 2
queue.pop();
cout << m << endl; // 1
auto & m = queue.top();
でトップの値を取得し、出力も3 2 1
ある場合。
最大値がauto m = queue.top();
の場合、出力は3 3 3
です。
これのメカニズムは何ですか?
定義されていない動作により、存在しなくなった要素への参照が作成されました。 –
なぜこれがdownvotedされているのか分かりません。十分な質問のようです。 –