priority_queue
调用后的top()
更改返回的 const 引用pop()
(visual studio 2015)
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
。
这背后的机制是什么?