C++ priority_queue 当存储pair的默认排序方式

Posted weixin_43739821

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ priority_queue 当存储pair的默认排序方式相关的知识,希望对你有一定的参考价值。

我们知道当priority_queue不指定排序方式是默认是大根堆,但如果存储的是pair类型的时候呢?

int main()

	priority_queue<pair<int, int> > myqueue;//这里>>之间加空格,防止误认为是右移运算符
	myqueue.emplace(5, 7);//这里不能写push,emplace是先构造再插入
	myqueue.emplace(4, 8);
	myqueue.emplace(5, 8);
	myqueue.emplace(4, 7);
	while (!myqueue.empty())
	
		cout << myqueue.top().first << " " << myqueue.top().second << endl;
		myqueue.pop();
	
	return 0;

运行结果:

可见默认排序方式是先以first排序再以second排序

以上是关于C++ priority_queue 当存储pair的默认排序方式的主要内容,如果未能解决你的问题,请参考以下文章

当对头元素使用引用时,C++ 优先级队列的行为很奇怪

C++ STL priority_queue容器适配器详解

从 C++ priority_queue 中弹出元素的时间

C++入门stack和queue适配器介绍+ priority_queue的模拟实现仿函数基本概念提及

C++ 取消引用 std::priority_queue::top [重复]

priority_queue C++