C++ Primer Plus学习笔记之STL容器
2014-03-07 18:26
281 查看
C++ Primer Plus学习笔记之STL容器
一,容器的概念容器是存储其他对象的对象。被存储的对象必须是同一种类型,它们可以是OOP意义上的对象,也可以是内置类型值。
二,容器的分类
1,序列容器
vector,deque,queue,list,stack,priority_queue
2,关联容器
set,multiset,map,multimap
三,容器变量的定义(以vector为例)
1,vector<int> v;定义一个空容器,向容器中添加元素只能用v.push_back()等等,通过下标访问非法
2,vector<int> v(100);定义一个大小为100的容器,向容器中添加元素既可以通过下标也可以通过函数操作
3,vector<int> v[100];定义一个大小为100的数组,数组中元素的类型是向量,向量的元素类型是int
4,vector<vector<int> > v(100);定义一个二维向量,相当于二维数组,行数为100,与3是等价的定义
注意它们几个的声明方式
四,序列容器的操作
T.front()返回容器首元素
T.back()返回容器尾元素
T.push_front()向容器首部添加元素
T.push_back()向容器尾部添加元素
T.pop_front()删除容器首部元素
T.pop_back()删除容器尾部元素
T.insert(p,t)将t插入到p的前面
T.erase(p)删除p指向的元素
T.clear()清空容器
四,关联容器的操作
关联容器将值与键关联在一起,并使用键来查找值。
set是关联集合,可反转,可排序,且键值是唯一的,所以不能存储多个相同的值。
set<string> s;
第二个模板参数是可选的,可用于指示用来对键值进行排序的比较函数或者对象,默认情况下将使用less<>
multimap也是可反转的,经过排序的关联容器,但键和值的类型不同,且同一个键可能与多个值关联
multimap<int ,string> m;
第三个模板参数是可选的,指出用于对键值进行的比较函数或者对象,在默认情况下将使用模板less<>
可以使用first,second成员来访问键和值
总结:
容器里有很多方便使用的方法,具体选用什么类型的容器,应该依据实际情况而定。
相关文章推荐
- C++ Primer Plus学习笔记之STL函数对象
- C++ Primer Plus学习笔记之STL算法
- C++ Primer Plus学习笔记之STL迭代器
- 《C++ Primer Plus》第3章 处理数据 学习笔记
- 2012/1/8 《C++ Primer Plus》第二章:开始学习C++ 学习笔记
- 2012/1/11 《C++ Primer Plus》第四章:复合类型 学习笔记
- 2012/1/21 《C++ Primer Plus》第八章:函数探幽 学习笔记
- [C++ Primer Plus]学习笔记
- C++ primer plus 第五版 学习笔记 5章7题
- 2012/2/3 《C++ Primer Plus》第十四章:C++中的代码重用 学习笔记
- [C++ Primer Plus]学习笔记--每次读取一行字符串输入
- C++ STL学习笔记四 list双向链表容器
- 2012/2/7 《C++ Primer Plus》第十六章:string类和标准模板库 学习笔记
- C++ Primer plus 学习笔记之 数组、array和vector异同点
- C++PrimerPlus第九章学习笔记——内存模型和名称空间
- C++ Primer Plus 学习笔记 第五章 编程练习
- C++ STL--map映照容器学习笔记
- 2012/2/7 《C++ Primer Plus》第十六章:string类和标准模板库 学习笔记
- 《C++ Primer Plus》15.4 RTTI 学习笔记
- c++学习笔记之复合类型(c++ primer plus)