社区
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,
很困惑的問題
...全文
307
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写文章
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
STL
中
的
priority
_
queue
priority
_
queue
是
STL
中
的一种容器,可以实现优先级队列的功能。下面,我们将详细介绍
priority
_
queue
的使用方法和实现原理。
priority
_
queue
的基本概念
priority
_
queue
是一种特殊...
【C++入门到精通】C++入门 -
priority
-
queue
(
STL
)优先队列
priority
_
queue
源码
leetcode2sumc-Cpp-
STL
-Quick-Help:它包含C++
STL
用法和快速帮助以及易于理解的注释和示例
使用
priority
_
queue
(即堆)的不同方式 :mount_fuji: 默认声明
priority
_
queue
< int > pq; // creates max-heap
priority
_
queue
< int , vector< int >> pq; // creates max-heap 为
priority
_
queue
编写...
二叉堆(binary heap)
本人做的一个二叉堆的课件,附带
STL
中
的
priority
_
queue
stl
-huffman.rar_The First_huffman_huffman
priority
implement huffman algorithm with
stl
priority
-
queue
, first you must have the file, then the result is saved
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章