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。
这背后的机制是什么?