社区
C++ 语言
帖子详情
STL中的priority_queue問
DraculaW
2007-08-08 02:04:08
請問 這個 (const value_type* first, const value_type* last,const Compare& comp)
中 first和last都是起什么作用的...
用 priority_queue <int, vector<int>, greater<int> >來講解一下好么
而且 看msdn說first和last是個inputIterator,
很困惑的問題
...全文
292
8
打赏
收藏
STL中的priority_queue問
請問 這個 (const value_type* first, const value_type* last,const Compare& comp) 中 first和last都是起什么作用的... 用 priority_queue <int, vector, greater >來講解一下好么 而且 看msdn說first和last是個inputIterator, 很困惑的問題
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DraculaW
2007-08-08
打赏
举报
回复
代码中
它的构造函数只是做了这件事情....
c.insert(c.end(), __first, __last);
而 这个c 正是被默认设置为 vector<_Tp>...
taodm
2007-08-08
打赏
举报
回复
去买本《STL源码剖析》,priority_queue一共才要3页纸就全讲完了。
你一看就知道了。
DraculaW
2007-08-08
打赏
举报
回复
这个是我在msdn上拖下来的例子
他的作用我也明白 只是很奇怪
为什么last一般用的是一个vector?
因为我大学时候的一道作业题是这样写的 当时也没有细究..
现在捡起来 发现了
SGI的在这里
http://www.sgi.com/tech/stl/priority_queue.html
而
MSDN的我拷来了
template<class InputIterator>
priority_queue(
InputIterator _First,
InputIterator _Last,
const Traits& __Comp
);
我想不明白的只是 为什么一个 类型和 这个类型的vector可以做为first和last 或许 得去看看它是怎么实现的...
jixingzhong
2007-08-08
打赏
举报
回复
没见过楼主给的这种形式 ...
不过,从表面看,
first 和 last 就是指示一个数据段,
把这两个位置之间的数据 根据 第三个参数comp指定的优先排序规则 进行有序化 ...
jixingzhong
2007-08-08
打赏
举报
回复
Priority queue constructors
Syntax:
#include <queue>
priority_queue( const Compare& cmp = Compare(), const Container& c = Container() );
priority_queue( input_iterator start, input_iterator end, const Compare& comp = Compare(), const Container& c = Container() );
Priority queues can be constructed with an optional compare function cmp' and an optional container c. If start and end are specified, the priority queue will be constructed with the elements between start and end.
hoya5121
2007-08-08
打赏
举报
回复
請問 這個 (const value_type* first, const value_type* last,const Compare& comp)
中 first和last都是起什么作用的...
---------
first last 简单的说,是2个指针(暂且这样理解吧)分别指向容器的第一个元素和最后面的
在这里作为参数可以表示一个区间,就是从头到尾,给你据个例子:
adjacent_find
template<class FwdIt>
FwdIt adjacent_find(FwdIt first, FwdIt last);
template<class FwdIt, class Pred>
FwdIt adjacent_find(FwdIt first, FwdIt last, Pred pr);
查找条件为毗邻的2个元素满足某种关系
第一个函数是满足 *(first + N) == *(first + N + 1)
第二个函数是满足 pr(*(first + N), *(first + N + 1)) == true
第二个函数的第三个参数是函数对象,理解它之前可以先将其理解成函数,象这样bool pr(T t1, T t2)
引自我的博客: http://blog.csdn.net/hoya5121/archive/2007/08/06/1728138.aspx
用 priority_queue <int, vector<int>, greater<int> >來講解一下好么
而且 看msdn說first和last是個inputIterator,
很困惑的問題
---------------
所谓inputIterator意思是说这个"指针"是指向输入(只读)参数的.
priority_queue是个优先队列,大概意思是说你将元素插入队列后就自动按照你提前告诉它的优先方式来排序插入.
如:less<class T> 这是按值大的优先 greater<class T>这是按值小的优先,
priority_queue<class T, class comp=less< class Y>> 默认的是以大为先
如果你还是不太懂的话,建议你先学习stl的基本知识
healer_kx
2007-08-08
打赏
举报
回复
难道不是beigin和end的意思?
taodm
2007-08-08
打赏
举报
回复
嗯,这个还真没用过。建议看<STL源码剖析>
STL
中
priority
_
queue
priority
_
queue
用法,希望对大家会有所帮助
C++
priority
-
queue
优先队列:实现及操作方法详解
内容概要:本文详细讲解了 C++
中
priority
_
queue
优先队列的基本用法。通过示例展示了
priority
_
queue
的定义及其常见操作方法,包括创建不同类型的队列,默认大根堆(从大到小),以及自定义小根堆(从小到大)。文
中
逐步解析了如何向队列
中
插入数据项,检索并移除最高优先级的数据点,还涉及检查队列当前状态(如规模大小和非空与否)的方法,使得读者能迅速掌握其实际运用。 适用人群:面向具有一定 C++ 基础的学习者,特别是在数据结构课程学习期间或者准备参加编程竞赛的学生群体,对于有意向深入研究
STL
容器特性的程序员同样适用。 使用场景及目标:①帮助初学者快速入门
STL
容器之一
priority
_
queue
优先生级队列的具体用法,②培养解决复杂度更高的排序相关问题的能力。 其他说明:本教程采用了简化的函数演示,便于理解各关键特性而没有涉及到所有高级特性和多线程环境的支持等问题。
【C++入门到精通】C++入门 -
priority
-
queue
(
STL
)优先队列
priority
_
queue
源码
leetcode2sumc-Cpp-
STL
-Quick-Help:它包含C++
STL
用法和快速帮助以及易于理解的注释和示例
leetcode 2 和 c C++
STL
快速帮助 它包含 C++
STL
用法和快速帮助以及易于理解的注释和示例(复制+粘贴以使用)。 我在解决不同类型的 Leetcode 问题时学到了这些。 我将使用“int、string 等”来方便而不是像对、结构等复杂的实体 :winking_face: . 你可以用任何数据结构替换它 :memo: 使用
priority
_
queue
(即堆)的不同方式 :mount_fuji: 默认声明
priority
_
queue
< int > pq; // creates max-heap
priority
_
queue
< int , vector< int >> pq; // creates max-heap 为
priority
_
queue
编写比较器函数 1 . Using in-built comparator provided by C++ :
priority
_
queue
< int , vector< int >, greater< int >> pq; // creates min-heap 2 . Using user defined comparator as a structure struc
二叉堆(binary heap)
本人做的一个二叉堆的课件,附带
STL
中
的
priority
_
queue
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章