STL 容器总结(一)
来源:互联网 发布:淘宝商机助手 编辑:程序博客网 时间:2024/05/27 01:16
一、所有容器的共通操作
1、equality(==) 和 inequality(!=) 运算符, 返回 true 或者 false。
2、assignment(=) 运算符,将某个容器复制给另一个容器。
3、empty() 会在容器没有任何元素的时候返回 true,否则 false。
4、size() 返回目前容器中持有元素的数目。
5、clear() 清除所有元素
二、 每个容器都提供了begin() 、end()、 insert()、 erase() 函数
1、begin() 返回一个 iterator,指向容器的第一个元素。
2、end() 返回一个iterator,指向容器的最后一个元素的下一个位置。
3、insert() 将单一或某个范围内的元素插入容器内。
4、erase() 将容器内单一或某个范围内的元素删除。
三、 顺序性容器
vector
1、vector 和 list 是最主要的两个顺序性容器。
2、vector 以一块连续的内存来存放元素,对 vector 进行随机访问,比较有效率,vector 内的每个元素都被存储在距离起始点的固定偏移位置上。如果将元素插入任意位置,而不是末端,那么效率将很低,因为插入位置右端的每一个元素,都必须被复制一份,然后依次向右移动。同样道理,删除 vector 内最后一个元素以外的任意元素,同样缺乏效率。
list
list 是双向链接,而非连续内存来存储内容,因此可以执行前进或者后退操作。list 中每个元素包含三个字段:value、back 指针、front 指针。在 list 的任意位置插入和删除都颇具效率,因为 list 本身只需设定 back 和 front 指针即可。如果对 list 进行随机访问的操作,则效率欠佳,因为每次访问都必须遍历介于其中的所有元素。
deque
deque 和 vector 行为比较相似,都以连续内存来存储元素。和 vector 不同的是,deque 对于前端元素的插入和删除效率更高,末端亦同。如果我们需要在容器前端插入元素,并执行末端的删除操作,deque 比较理想。(标准库的 queue 以 deque 作为底部存储元素)
定义容器的方法
# 产生空的容器:list<string> slist;vector<int> ivec;# 产生特定大小的容器:list<int> ilist(1024);vector<string> svec(32);# 产生特定大小的容器,并制定初值:list<int> ilist(10, -11);vector<string> svec(12, "hello");# 通过一对iterator产生容器:int ia[6] = {1, 2, 3, 4, 5, 6};vector<int> ivec(ia, ia+6);# 复制容器list<string> slist(1, "hello");list<string> slist1(slist);
push_back() 会在末尾插入一个元素
pop_back() 会删除末尾的最后一个元素
除此之外,list 和 deque (不包括 vector) 还提供了 push_front() 和 pop_front() 。
pop_back() 和 pop_front() 这两个操作函数并不会返回被删除的元素值。因此,如果要读取最前端的元素,使用front() ,读取末端元素,使用back() 。
- STL 容器总结(一)
- STL容器学习总结(一)
- STL总结(一)顺序容器的操作
- STL容器(一) 基本序列容器
- C++STL容器(一)
- c++ STL 容器基础(一)
- 学STL谈Vector容器(一)
- STL学习(一)map容器学习
- STL容器(一)——List
- C++STL模板容器(一)
- Effective STL 第一章:容器(一)
- STL 浅入 容器 (一)
- C++ STL容器学习(一)
- STL容器特征总结(含迭代器失效)
- STL容器学习总结(二)
- stl容器总结
- stl容器学习总结
- STL容器特征总结
- 居委会系统
- java提高篇(七)-----详解内部类
- 推荐书籍《大话移动APP测试 Android与iOS》
- hihocoder 闰秒
- A Tutorial on Clustering Algorithms
- STL 容器总结(一)
- 抽象类的例子(151)
- 数据库MySQL的下载、安装、配置。
- 插件下的plugin.xml以及Camera的调取方法
- 教你手写Java层handler机制
- 第十二周:34. Search for a Range
- localstorage session 和 cookie分析
- SQL注入攻击
- 如何运行Struts2官网最新Demo-