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.cpp
和SqPqueue.h
估计是自己封装了优先级队列的类,功能还多一点,比如能打印队列、查大小什么的。6.cpp
是主程序文件,主要跑演示用,边插入边操作,结果也展示出来了。
用VC++2012
的项目结构就那样,StdAfx.h
和StdAfx.cpp
主要是为了预编译头文件,加快编译速度。还有一堆6.vcxproj
开头的文件,都是 VS 工程配置,不用管太细。
如果你正想搞清楚怎么自定义优先级、封装类结构,又想练下 STL 的用法,那这个项目可以跑一遍看看,还挺有收获的。
6.rar
预估大小:9个文件
6.sln
868B
SqPqueue.cpp
1KB
StdAfx.cpp
288B
6.cpp
723B
6.vcxproj.user
143B
StdAfx.h
747B
6.vcxproj
7KB
SqPqueue.h
1KB
6.vcxproj.filters
1KB
4.91KB
文件大小:
评论区