C++优先队列中greater<int>和less<int>参数的区别

C++中的priority_queue

这里有一个非常容易误解的地方,greater表示数字小的优先级高,less表示数字大的优先级高。
下面直接看代码

less

priority_queue, less > lessQ;
lessQ.push(1);
lessQ.push(2);
lessQ.push(3);
int sizeL = lessQ.size(); 
	for(int i=0;i

输出

3 2 1

greater

priority_queue, greater > greaterQ;
greaterQ.push(1);
greaterQ.push(2);
greaterQ.push(3);
	int sizeG = greaterQ.size();
	for(int i=0;i

输出

1 2 3

如上图所示,应该可以很清楚的看出,less构建的是大顶堆,greater构建的是小顶堆。

你可能感兴趣的:(C++,c++,排序算法)