STL总结(1)
来源:互联网 发布:sql必知必会 第4版 pdf 编辑:程序博客网 时间:2024/05/16 06:13
1.栈(Stack):
#include<stack>stack<int> stack1; //在是默认以deque为容器的stack1.push(element);stack1.pop(); stack1.empty(); //是否为空stack1.size(); //元素个数stack1.top(); //判断是否为栈顶元素
2.队列(Queue)
#include<queue><pre name="code" class="cpp hljs" style="border: 0px; margin-top: 0px; margin-bottom: 0px; padding: 0.5em; font-size: 14px; font-family: Menlo, Monaco, "Andale Mono", "lucida console", "Helvetica Neue", "Microsoft YaHei", "Courier New"; vertical-align: baseline; counter-reset: lines 0; overflow-x: auto; line-height: 28px; background: rgb(248, 248, 255);"><pre name="code" class="cpp">queue<int> queue1;queue1.push(element); //加入队列顶部queue1.pop(); //弹出队列里第一个元素queue1.back(); //队列最后一个元素queue1.front(); //队列第一个元素queue1.size(); //队列元素个数queue1.empty(); //队列是否为空
3.<span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px; font-style: inherit; font-weight: inherit; line-height: 20.8px; color: rgb(51, 51, 51); background-color: transparent;">双端队列</span><p style="border: 0px; margin-top: 0px; margin-bottom: 16px; padding-top: 0px; padding-bottom: 0px; font-size: 15px; font-family: "Segoe UI", "Microsoft YaHei", "WenQuanYi Micro Hei", Arial, Verdana, Tahoma, sans-serif; vertical-align: baseline; line-height: 24px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-size: 14px; font-family: "microsoft yahei"; vertical-align: baseline; line-height: 26px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; vertical-align: baseline; line-height: 20.8px; background-image: initial; background-attachment: initial; background-color: transparent; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; vertical-align: baseline; line-height: 20.8px; background-image: initial; background-attachment: initial; background-color: transparent; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background-image: initial; background-attachment: initial; background-color: transparent; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: verdana, arial, helvetica, sans-serif; vertical-align: baseline; line-height: 19.5px; background-image: initial; background-attachment: initial; background-color: transparent; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">使用deque容器之前必须加上<deque>头文件:</span></span></span></span></span></p><p style="border: 0px; margin-top: 0px; margin-bottom: 16px; padding-top: 0px; padding-bottom: 0px; font-size: 15px; font-family: "Segoe UI", "Microsoft YaHei", "WenQuanYi Micro Hei", Arial, Verdana, Tahoma, sans-serif; vertical-align: baseline; line-height: 24px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-size: 14px; font-family: "microsoft yahei"; vertical-align: baseline; line-height: 26px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; vertical-align: baseline; line-height: 20.8px; background-image: initial; background-attachment: initial; background-color: transparent; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; vertical-align: baseline; line-height: 20.8px; background-image: initial; background-attachment: initial; background-color: transparent; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background-image: initial; background-attachment: initial; background-color: transparent; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: verdana, arial, helvetica, sans-serif; vertical-align: baseline; line-height: 19.5px; background-image: initial; background-attachment: initial; background-color: transparent; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">#include<deque>;</span><span style="border-style: initial; border-color: initial; border-image-source: initial; border-image-slice: initial; border-image-width: initial; border-image-outset: initial; border-image-repeat: initial;"><br style="border: 0px; margin: 0px; padding: 0px;" /></span></span></span></span></span></p><p style="border: 0px; margin-top: 0px; margin-bottom: 16px; padding-top: 0px; padding-bottom: 0px; font-size: 15px; font-family: "Segoe UI", "Microsoft YaHei", "WenQuanYi Micro Hei", Arial, Verdana, Tahoma, sans-serif; vertical-align: baseline; line-height: 24px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-size: 14px; font-family: "microsoft yahei"; vertical-align: baseline; line-height: 26px; background: transparent;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-size: 13px; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; vertical-align: baseline; line-height: 20.8px; background: transparent;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; vertical-align: baseline; line-height: 20.8px; background: transparent;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: verdana, arial, helvetica, sans-serif; vertical-align: baseline; line-height: 19.5px; background: transparent;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><span style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; vertical-align: baseline; background: transparent;"></span></span></span></span></span></span></p><p style="border: 0px; margin-top: 0px; margin-bottom: 16px; padding-top: 0px; padding-bottom: 0px; font-size: 15px; font-family: "Segoe UI", "Microsoft YaHei", "WenQuanYi Micro Hei", Arial, Verdana, Tahoma, sans-serif; vertical-align: baseline; line-height: 24px; color: rgb(85, 85, 85); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">4.set是与集合相关的容器,STL为我们提供了set的实现,在编程题中遇见集合问题直接调用是十分方便的。</p><h2 id="set" style="border: 0px; margin: 0px; padding: 0px; font-weight: normal; font-size: 1.8rem; font-family: "Segoe UI", "Microsoft YaHei", "WenQuanYi Micro Hei", Arial, Verdana, Tahoma, sans-serif; vertical-align: baseline; color: rgb(85, 85, 85); line-height: 28px; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">set</h2><p style="border: 0px; margin-top: 0px; margin-bottom: 16px; padding-top: 0px; padding-bottom: 0px; font-size: 15px; font-family: "Segoe UI", "Microsoft YaHei", "WenQuanYi Micro Hei", Arial, Verdana, Tahoma, sans-serif; vertical-align: baseline; line-height: 24px; color: rgb(85, 85, 85); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">set模版类的定义在头文件<<code style="border: 1px solid rgb(225, 225, 232); margin: 0px 5px; padding: 2px 4px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; color: rgb(50, 165, 231); white-space: nowrap; background: rgb(251, 251, 251);">set</code>>中。</p><p style="border: 0px; margin-top: 0px; margin-bottom: 16px; padding-top: 0px; padding-bottom: 0px; font-size: 15px; font-family: "Segoe UI", "Microsoft YaHei", "WenQuanYi Micro Hei", Arial, Verdana, Tahoma, sans-serif; vertical-align: baseline; line-height: 24px; color: rgb(85, 85, 85); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">定义set对象的示例代码如下:</p><pre class="prettyprint hljs cpp" style="border: 0px; margin-top: 0px; margin-bottom: 0px; padding: 0.5em; font-size: 14px; font-family: Menlo, Monaco, "Andale Mono", "lucida console", "Helvetica Neue", "Microsoft YaHei", "Courier New"; vertical-align: baseline; counter-reset: lines 0; overflow-x: auto; line-height: 28px; background: rgb(248, 248, 255);"><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><span class="hljs-built_in" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; color: rgb(0, 134, 179); background: transparent;"><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><span class="hljs-built_in" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;">set</span></span></span><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><</span><span class="hljs-keyword" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; color: rgb(149, 65, 33); background: transparent;"><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><span class="hljs-keyword" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;">int</span></span></span><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;">></span></span> s;<span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><span class="hljs-built_in" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; color: rgb(0, 134, 179); background: transparent;"><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><span class="hljs-built_in" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;">set</span></span></span><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><</span><span class="hljs-keyword" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; color: rgb(149, 65, 33); background: transparent;"><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;"><span class="hljs-keyword" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;">double</span></span></span><span class="hljs-stl_container" style="border: 0px; margin: 0px; padding: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; background: transparent;">></span></span> ss;
set的基本操作:
s.begin() // 返回指向第一个元素的迭代器s.clear() // 清除所有元素s.count() // 返回某个值元素的个数s.empty() // 如果集合为空,返回true(真)s.end() // 返回指向最后一个元素之后的迭代器,不是最后一个元素s.equal_range() // 返回集合中与给定值相等的上下限的两个迭代器s.erase() // 删除集合中的元素s.find() // 返回一个指向被查找到元素的迭代器s.get_allocator() // 返回集合的分配器s.insert() // 在集合中插入元素s.lower_bound() // 返回指向大于(或等于)某值的第一个元素的迭代器s.key_comp() // 返回一个用于元素间值比较的函数s.max_size() // 返回集合能容纳的元素的最大限值s.rbegin() // 返回指向集合中最后一个元素的反向迭代器s.rend() // 返回指向集合中第一个元素的反向迭代器s.size() // 集合中元素的数目s.swap() // 交换两个集合变量s.upper_bound() // 返回大于某个值元素的迭代器s.value_comp() // 返回一个用于比较元素间的值的函数
multiset
在<set
>头文件中,还定义了另一个非常实用的模版类multiset(多重集合)。多重集合与集合的区别在于集合中不能存在相同元素,而多重集合中可以存在。
定义multiset对象的示例代码如下:
multiset<int> s;multiset<double> ss;
multiset和set的基本操作相似,需要注意的是,集合的count()
能返回0(无)或者1(有),而多重集合是有多少个返回多少个。
c.front()返回c容器的第一个元素
c.back()返回c容器的最后一个元素
c.size()返回c容器中实际拥有的元素个数c.push_back(num)在末尾位置插入元素
c.pop_back()删除末尾位置的元素
c.push_front(num)在开头位置插入元素
c.pop_front()删除开头位置的元素
另外常用的还有:c.insert(pos,num)在pos位置插入元素num
c.erase(pos)删除pos位置的元素
0 0
- STL总结(1)
- STL总结(转)
- stl总结(转)
- (转)STL总结
- stl总结(转)
- STL容器总结系列(1)
- STL总结(持续更新)
- STL 容器总结(一)
- STL总结(不定期更新...)
- 【STL】STL 一般总结
- STL总结
- STL 总结
- STL 总结
- stl总结
- stl总结
- STL总结
- STL 总结
- 总结--STL
- 关于在fpga上进行目标检测、跟踪的设计
- 简单的C语言程序——整数排列
- Web应用的状态管理
- 类与类之间的关系
- js跳转到锚点
- STL总结(1)
- form表单中的input有哪些类型及其用途
- R11-12
- 如何用 HTTP Caching 优化网站性能
- spring boot示例学习
- 在 Sublime 中使用 SFTP 插件快速编辑远程服务器文件
- Linux文件系统十问---深入理解文件存储方式(rhel6.5,EXT4)
- Linux修改系统时间与时区
- JDBC 之C3P0 & DBCP之外的连接数据库你不会知道这些