最大值优先级队列priority_queue<int, vector, less>
默认是// priority_queue p1; // 默认是 最大值优先级队列
这个队列是默认把最大值放在前边。
void main8()
{
priority_queue<int> p1; // 默认是 最大值优先级队列
//priority_queue<int, vector<int>, less<int>> p2;
//priority_queue<int> p1; //默认是 最大值优先级队列
//priority_queue<int, vector<int>, less<int> > p1; //相当于这样写
//priority_queue<int, vector<int>, greater<int>> p3; //最小值优先级队列
p1.push(33);
p1.push(11);
p1.push(22);
p1.push(55);
cout << "队头元素" << p1.top() << endl;
cout << "队列的大小" << p1.size() << endl;
while (p1.size() > 0)
{
cout << p1.top() << " ";
p1.pop();
}
}
输出结果是:
最小值优先队列 priority_queue<int, vector, greater> p3; //最小值优先级队列
记忆方式greater(),最大的放在最后。
void main9()
{
// priority_queue p1; // 默认是 最大值优先级队列
//priority_queue<int, vector, less> p2;
//priority_queue p1; //默认是 最大值优先级队列
//priority_queue<int, vector, less > p1; //相当于这样写
priority_queue<int, vector, greater> p3; //最小值优先级队列
p3.push(33);
p3.push(11);
p3.push(22);
p3.push(55);
cout << “队头元素” << p3.top() << endl;
cout << “队列的大小” << p3.size() << endl;
while (p3.size() > 0)
{
cout << p3.top() << " ";
p3.pop();
}
}