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
评论区