c++ STL 容器——序列
STL中11个容器类型分别是deque,list,queue,priority_queue,stack,vector,map,multimap,set,multiset,bieset(在比特级处理数据的容器,不讨论)
一些基本的容器特征
| 表达式 | 返回值 | 说明 | 复杂度 |
| XX:iterator | 对应迭代器 | 指针 | 编译时间 |
| X u | 创建一个名为u的空容器 | 固定 | |
| X u(a) /X u=a | 复制a到u | 线性 | |
| a.begin() | 迭代器 | 指向容器的第一个元素 | 固定 |
| a.end() | 迭代器 | 指向超尾值迭代器(最后一个元素+1) | 固定 |
| a.size() | unsigned int | 返回元素个数 等价于a.end()-a.begin() | 固定 |
| a.swap(b) | void | 交换a,b的内容 | 固定 |
| a==b / a!=b | bool | 是否完全一样(长度,每一个元素都一样) | 线性 |
序列:
6种容器是序列:deque双端队列,list双向链表,queue队列,priority_queue优先队列,stack栈,vector数组
| 表达式 | 返回值 | 说明 |
| X a(n,t) | 声明一个类型为X,名为a,由n个t组成的序列 | |
| X a(i,j) |
声明一个类型X,名为a,并将其初始化为区间【i,j)的内容 |
|
| a.insert(p,t) | 迭代器 | 将t插入到p前 |
| a.insert(p,n,t) | void | 将n个t插入到p前 |
| a.insert(p,i,j) | void | 将区间【i,j)的元素插入到p前 |
| a.erase(p) | 迭代器 | 删除p指向的内容 |
| erase(p,q) | 迭代器 | 删除区间【p,q】的元素 |
| a.clear() | void | 删除所有,等价于a.erase(a.begin(),a.end()); |
其他容器函数:
| 表达式 | 含义 | 对应容器 |
| a.front() | 返回第一个 | vector,list,deque,queue |
| a.back() | 返回最后一个 | vector,list,deque,queue |
| a.push(pop)_front() | 在第一个前添加(删除) | list,deque |
| a.push(pop)_back() | 添加(删除)最后一个 | list,deque,vector |
| a[n] / a.at(n) | 返回第n个元素 | a[n]不检查是否越界;a.at(n)检查是否越界 |
栈和队列的成员函数写过了 http://www.cnblogs.com/jinmingyi/p/6798041.html
c++ STL 容器——序列的更多相关文章
- STL常用序列容器
这里简要的记述一下STL常用容器的实现原理,要点等内容. vector vector是比较常用的stl容器,用法与数组是非类似,其内部实现是连续空间分配,与数组的不同之处在于可弹性增加空间,而arra ...
- STL容器
啦啦啦,今天听啦高年级学长讲的STL容器啦,发现有好多东西还是有必要记载的,毕竟学长是身经百战的,他在参加各种比赛的时候积累的经验可不是一天两天就能学来的,那个可是炒鸡有价值的啊,啊啊啊啊啊 #inc ...
- 【转】c++中Vector等STL容器的自定义排序
如果要自己定义STL容器的元素类最好满足STL容器对元素的要求 必须要求: 1.Copy构造函数 2.赋值=操作符 3.能够销毁对象的析构函数 另外: 1. ...
- STL容器迭代器失效分析
连续内存序列容器(vector, string, deque) 对于连续内存序列STL容器,例如vector,string,deque,删除当前iterator会使得后面所有的iterator都失效, ...
- STL容器的适用情况
转自http://hsw625728.blog.163.com/blog/static/3957072820091116114655254/ ly; mso-default-props:yes; m ...
- STL容器与配接器
STL容器包括顺序容器.关联容器.无序关联容器 STL配接器包括容器配接器.函数配接器 顺序容器: vector 行为类似于数组,但可以根据要求 ...
- STL容器的本质
http://blog.sina.com.cn/s/blog_4d3a41f40100eof0.html 最近在学习unordered_map里面的散列函数和相等函数怎么写.学习过程中看到了一个好帖子 ...
- STL容器总结
一. 种类: 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.multiset.map和multimap. 非标准序列容器slist和rope.sl ...
- C++ STL容器总结
1. STL 容器 1. 按种类划分 顺序容器( sequence containers):是一种各元素之间有顺序关系的线性表,是一种线性结构的可序群集.顺序性容器中的每个元素均有固定的位 ...
随机推荐
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- .NET C#到Java没那么难,Servlet篇
前言 .NET C#到Java没那么难,都是面向对向的语言,而且语法还是相似的,先对比一下开发环境,再到Servlet,再到MVC,都是一样一样的,只是JAVA的配制项比较多而已,只要配好一个,后面都 ...
- my97自定义事件
onFocus="WdatePicker({onpicked:function(){alert(0);}})"
- docker 初识之二(简单发布ASP.NET Core 网站)
在发布ASP.NET Core网站以前,先介绍一下DaoCloud 一个免费的docker云容器服务平台.登陆官方网站,创建一台docker主机,这台主机有120分钟的使用时间,对于鄙人学习使用正好合 ...
- 鼠标滚轮图片放大缩小功能,使用layer弹框后不起作用
今天在项目中遇到的一个问题:点击按钮使用layer弹框弹出一张图片,需要加一个鼠标滚轮放大缩小,图片也跟着放大缩小的功能.于是在网上找了一个demo. DEMO: <!DOCTYPE html ...
- mysqlclient和PyMySQL对比
环境:Python 3.5+, Django 1.9+ 最初用django时,搜索时发现PyMySQL的文章很多,然而在django的官方文档中python3版的mysql客户端驱动确没有提到PyMy ...
- Kafka 源代码分析.
这里记录kafka源代码笔记.(代码版本是0.8.2.1) kafka的源代码如何下载.这里简单说一下. git clone https://git-wip-us.apache.org/repos/a ...
- tab切换实现方式2
tab切换实现方式2: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- “HK”的日常之ARP断网攻击
ARP断网攻击是什么?可以吃吗?如果可以吃它好吃吗? ARP断网攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响 ...
- css3学习系列之移动(一)
transform功能 放缩 使用sacle方法实现文字或图像的放缩处理,在参数中指定缩放倍率,比如sacle(0.5)表示缩小50%,例子如下: <!DOCTYPE html> < ...