STL的基本函数笔记
2019独角兽企业重金招聘Python工程师标准>>>
deque double-end queue
#include <deque> //高效的插入和删除链表头,尾的元素
(1) 构造函数
deque():创建一个空deque
deque(int nSize):创建一个deque,元素个数为nSize
deque(int nSize,const T& t):创建一个deque,元素个数为nSize,且值均为t
deque(const deque &):复制构造函数
(2) 增加函数
void push_front(const T& x):双端队列头部增加一个元素X
void push_back(const T& x):双端队列尾部增加一个元素x
iterator insert(iterator it,const T& x):双端队列中某一元素前增加一个元素x
void insert(iterator it,int n,const T& x):双端队列中某一元素前增加n个相同的元素x
void insert(iterator it,const_iterator first,const_iteratorlast):双端队列中某一元素前插入另一个相同类型向量的[forst,last)间的数据
(3) 删除函数
Iterator erase(iterator it):删除双端队列中的某一个元素
Iterator erase(iterator first,iterator last):删除双端队列中[first,last)中的元素
void pop_front():删除双端队列中最前一个元素
void pop_back():删除双端队列中最后一个元素
void clear():清空双端队列中最后一个元素
(4) 遍历函数
reference at(int pos):返回pos位置元素的引用
reference front():返回手元素的引用
reference back():返回尾元素的引用
iterator begin():返回向量头指针,指向第一个元素
iterator end():返回指向向量中最后一个元素下一个元素的指针(不包含在向量中)
reverse_iterator rbegin():反向迭代器,指向最后一个元素
reverse_iterator rend():反向迭代器,指向第一个元素的前一个元素
(5) 判断函数
bool empty() const:向量是否为空,若true,则向量中无元素
(6) 大小函数
Int size() const:返回向量中元素的个数
int max_size() const:返回最大可允许的双端对了元素数量值
(7) 其他函数
void swap(deque&):交换两个同类型向量的数据
void assign(int n,const T& x):向量中第n个元素的值设置为x
2. include <queue>
priority_queue
优先队列容器也是一种从一端入队,另一端出对的队列。不同于一般队列的是,队列中最大的元素总是位于队首位置,因此,元素的出对并非按照先进先出的要求,将最先入队的元素出对,而是将当前队列中的最大元素出对。 C++ STL 优先队列的泛化,底层默认采用 vector 向量容器,使得队列容器的元素可做数组操作,从而应用堆算法找出当前队列最大元素,并将它调整到队首位置,确保最大元素出队。堆算法(heap algorithm) 具有 nLog(n) 阶的算法时间复杂度,此外,优先队列也可看作容器适配器,将底层的序列容器 vector 转换为优先队列priority_queue.
同样是因为仅需取队首和队尾元素的操作,因此 priority_queue 优先队列容器也不提供迭代器,对其他任意位置处的元素进行直接访问操作。使用时,一般用 priority_queue<T> 的形式进行具现, T 是优先队列元素的一个具现类型。
pop() | top()
push()
size() | empty() //主要的函数
转载于:https://my.oschina.net/badboy2/blog/488533
STL的基本函数笔记相关推荐
- 《Effective STL》学习笔记(第一部分)
本书从STL应用出发,介绍了在项目中应该怎样正确高效的使用STL.本书共有7个小节50个条款,分别为 (1) 容器:占12个条款,主要介绍了所有容器的共同指导法则 (2) vector和string: ...
- 【绝版C++书籍】《Effective STL》读书笔记
<Effective STL>读书笔记 写在前面 0<Effective STL>中可能过时的内容 1 容器 第1条:慎重选择容器类型. 第2条:不要试图编写独立于容器类型的代 ...
- Effective STL 50条有效使用STL的经验笔记
Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...
- 关于STL的一些笔记
最近在学stl,关于它的一些笔记整理一下: 1 #include <vector> vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一 ...
- 《Effective STL》重读笔记整理
最近有闲,在工作之余重读了<effective STL>一书,并通过 twitter 记了一下笔记,今天整理收集到这里. twitter 真的非常适合记读书笔记,哈哈,以后要好好地发扬.另 ...
- 《Effective STL》学习笔记(第四部分)
6.仿函数.仿函数类.函数等 函数和类似函数的对象--仿函数--遍布STL.关联容器使用它们来使元素保持有 序:find_if使用它们来控制它们的行为:如果缺少它们,那么比如for_each和tran ...
- 《Effective STL》学习笔记(第三部分)
4. 迭代器 标准STL容器提供了四种不同的迭代器:iterator.const_iterator.reverse_iterator和const_reverse_iterator 为什么有四种迭代器? ...
- 《Effective STL》学习笔记(第二部分)
2. vector和string 所 有的STL容器都很有用,但是相比于其他容器,vector和string更常用.本章从多个角度覆盖vector和string,如:为什么提倡使用 vector代替数 ...
- STL|QTL工作笔记-QString与std::string寻找子串的区别与联系
目录 STL中的string QTL中的QString 总结 STL中的string 在STL中,是采用这个逻辑进行的: 1.设置一个标志接收find的返回值: 2.当标志为XXX时,则为找到,否则为 ...
最新文章
- Flex技术中的陷阱
- 图书馆自动化系统 Evergreen 3.3 发布,迁移到 Angular
- 皮一皮:有的人自以为有小聪明...
- 测试软件测试赢在测试2:中国软件测试专家访谈录
- mysql+rownumber的用法_mysql中如何实现row_number
- redis 中一个字段 修改map_Redis bitmap 位图 从入门到精通 基础 实战 妙用
- java发送小程序模板消息,记录_小程序发送模板消息
- osg图元绑定方式总结
- 榜单:全球 35 位 35 岁以下科技创新青年
- nginx apache 服务器配置
- 苹果“双标”?法国版iPhone13仍赠送耳机,在中国同款售价却要149元
- 堆栈的缓冲区溢出进不了系统_一文理解缓冲区溢出
- [leetcode]Search in Rotated Sorted Array II
- 影视APP直播盒子源码 第三方接口无需采集
- 禁止java自动更新_修改注册表彻底关闭Java自动更新
- 论文那些事—Admix: Enhancing the Transferability of Adversarial Attacks
- 《机器学习实战》个人学习记录笔记(二)———k-近邻算法实战之约会网站配对效果判定
- Filter的过滤器链
- 永磁同步电机驱动视频教程_矢量控制_手把手教你写代码_无感FOC_有感FOC_状态观测器_卡尔曼滤波_慧驱动
- 小米盒子 计算机共享,小米盒子局域网SMB共享很好用很方便
热门文章
- java冒泡怎么写_java 冒泡 又一种写法
- abaqus利用python实现部件合并_python脚本实现abaqus前处理2D多晶粒建模(附完整源码)-Voronoi多边形的生成...
- babel需要这样配置
- jmeter mysql数据库_jmeter连接mysql数据库
- daemonset怎么读_DaemonSet 与 StatefulSet的使用
- MySQL设置数据格为空白或NULL
- Cli4.5.x 中使用axios请求数据
- oracle 事务实现原理,数据库事务的实现原理
- java无法编译加载主类_JAVA编译完毕运行时错误找不到或无法加载主类
- php sorcket_深入浅出讲解:php的socket通信