VC++2012C++优先级队列演练

优先级队列的演练项目,挺适合想搞明白 C++ STL 的朋友。用 VC++2012 写的,操作起来也还算顺手,关键是你能实战跑一遍。

优先级队列这东西,最大特点就是:谁优先级高,谁先出。默认是越大的数越靠前,你也可以自定义排序规则。用到的核心类是priority_queue,STL 里自带的,不用自己写底层逻辑,挺省事。

你只要知道几个基本操作就能用起来:push插入,pop删除,top查看当前最优先的元素,响应也快,代码也简单。像这样:

priority_queue<;int>; pq;
pq.push(10);
pq.push(5);
cout << pq>

如果你想让小的数先出来,用greater<;int>;就行:

priority_queue<;int, vector<;int>;, greater<;int>;> pq;

SqPqueue.cppSqPqueue.h估计是自己封装了优先级队列的类,功能还多一点,比如能打印队列、查大小什么的。6.cpp是主程序文件,主要跑演示用,边插入边操作,结果也展示出来了。

VC++2012的项目结构就那样,StdAfx.hStdAfx.cpp主要是为了预编译头文件,加快编译速度。还有一堆6.vcxproj开头的文件,都是 VS 工程配置,不用管太细。

如果你正想搞清楚怎么自定义优先级、封装类结构,又想练下 STL 的用法,那这个项目可以跑一遍看看,还挺有收获的。

rar
6.rar 预估大小:9个文件
file
6.sln 868B
file
SqPqueue.cpp 1KB
file
StdAfx.cpp 288B
file
6.cpp 723B
file
6.vcxproj.user 143B
file
StdAfx.h 747B
file
6.vcxproj 7KB
file
SqPqueue.h 1KB
file
6.vcxproj.filters 1KB
rar 文件大小:4.91KB