容器库概述
2014-08-17 10:03
295 查看
容器类型上的操作形成了一种层次:
某些操作是所有容器类型都提供的,如下表所示
一般来说,每个容器都定义在一个头文件中,文件名与类型名相同。即,deque定义在头文件deque中,list定义在头文件list中,以此类推。容器均定义为模板类。例如对于vector,我们必须提供额外信息来生成特定的容器类型。对大多数,但不是所有容器,我们还需要额外提供元素类型信息:
list<Sales_data> //保存Sales_data对象的list
deque<double> //保存double的deque
对容器可以保存的元素类型的限制
顺序容器几乎可以保存任意类型的元素。特别是,我们可以定义一个容器,其元素的类型是另一个容器。这种容器的定义与任何其他容器类型完全一样:在尖括号中指定元素类型(此种情况下,是另一种容器类型):
vector<vector<string>> lines; //vector的vector
此处lines是一个vector,其元素类型是string的vector
某些操作是所有容器类型都提供的,如下表所示
一般来说,每个容器都定义在一个头文件中,文件名与类型名相同。即,deque定义在头文件deque中,list定义在头文件list中,以此类推。容器均定义为模板类。例如对于vector,我们必须提供额外信息来生成特定的容器类型。对大多数,但不是所有容器,我们还需要额外提供元素类型信息:
list<Sales_data> //保存Sales_data对象的list
deque<double> //保存double的deque
对容器可以保存的元素类型的限制
顺序容器几乎可以保存任意类型的元素。特别是,我们可以定义一个容器,其元素的类型是另一个容器。这种容器的定义与任何其他容器类型完全一样:在尖括号中指定元素类型(此种情况下,是另一种容器类型):
vector<vector<string>> lines; //vector的vector
此处lines是一个vector,其元素类型是string的vector
容器操作 |
类型别名 iterator 此容器类型的迭代器类型 const_iterator 可以读取元素,但不能修改元素的迭代器类型 size_type 无符号整数类型,足够保存此种容器类型最大可能容器的大小 difference_type 带符号整数类型,足够保存两个迭代器之间的距离 value_type 元素类型 reference 元素的左值类型,与value_type&含义相同 const_reference 元素的const左值类型(即,const value_type&) 构造函数 C c; 默认构造函数,构造空容器 C c1(c2); 构造c2的拷贝c1 C c(b,e) 构造c,将迭代器b和e指定的范围内的元素拷贝到c(array不支持) C c{a,b,c...}; 列表初始化 赋值与swap c1=c2 将c1中的元素替换为c2中元素 c1={a,b,c....} 将c1中的元素替换为列表中元素(不适用array) a.swap(b) 交换a和b swap(a,b) 大小 c.size() c中元素的数目(不支持forward_list) c.max_size() c可保存的最大元素数目 c.empty() 若c中存储了元素,返回false,否则返回true 添加/删除元素(不适用array) 注:在不同容器中,这些操作的接口都不同 c.insert(args) 将args中的元素拷贝进c c.emplace(inits) 使用inits构造c中的一个元素 c.erase(args) 删除args指定的元素 c.clear() 删除c中的所有元素,返回void 关系运算符 ==,!= 所有容器都支持相等(不相等)操作 <,<=,>,>= 关系运算符(无序关联容器不支持) 获取迭代器 c.begin(),c.end() 返回指向c的首元素和尾元素之后位置的迭代器 c.cbegin(),c.cend() 返回const _iterator 反向容器的额外成员(不支持forward_list) reverse_iterator 按逆序寻址元素的迭代器 const_reverse_iterator 不能修改元素的逆序迭代器 c.rbegin(),c.rend() 返回指向c的尾元素和首元素之前位置的迭代器 c.crbegin(),c.crend() 返回const_reverse_iterator |
相关文章推荐
- 跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)
- 高级容器ApplicationContext的初始过程---总览与概述
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.5 Bean的生命周期
- 【spring】容器概述
- Spring IoC 容器概述
- spring ioc容器的学习笔记1----ioc容器概述
- 多媒体容器格式概述①
- 跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)
- JAVA容器分析之概述
- 跨主机网络概述 - 每天5分钟玩转 Docker 容器技术(48)
- [Spring3.x] 第 3 章 IOC 容器概述
- spring容器概述
- 三、Spring 容器概述
- java容器简要概述
- spring学习总结(二):IOC & DI 概述及 IOC 容器
- Spring3.0读书笔记----(三)IoC容器概述
- c++顺序容器概述
- Java高级技术第四章——容器类之Queue概述
- Spring3.X学习笔记1-IoC容器概述
- 『中级篇』容器的技术概述(二)