【足迹C++primer】25、容器库概览
来源:互联网 发布:大屏幕拼接控制软件 编辑:程序博客网 时间:2024/05/22 02:34
容器库概览
首先顺序容器几乎可以保存任意类型的元素。
vector<vector<string>> lines; //vector的vector
容器类型
iterator迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。
const_iterator对象可以用于const vector 或非 const vector,它自身的值可以改(可以指向其他元素),但不能改写其指向的元素值.
size_type由string类类型和vector类类型定义的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型
difference_type是描述序列(容器)中两个元素地址之间差异的有符号整数类型;
value_type它是一个typedef。是迭代器所指对象的类型
reference元素的左值类型;与value_type&含义相同
const_reference元素的const左值类型(即const value_type&)
迭代器
这里记住,c.end()是指向尾部元素后面那个位置的!!!
while(begin != end){ *begin = val; //范围不空,所以begin指向第一个元素 ++begin; //移动迭代器,获取下一个元素}
容器定义和初始化
//每个容器有三个元素,用给定的初始化器进行初始化list<string> authors={"Milton", "Shakespeare", "Austen"};vector<const char*> articles={"a", "an", "the"};list<string> list2(authors); //正确:类型匹配deque<string> authList(authors); //错误:容器类型不匹配vector<string> words(articles); //错误:容器类型必须匹配
标准库array具有固定大小
和内置数组一样,标准库array大大小也是类型的一部分。
array<int, 42> //类型为:保存42个int的数组array<string, 10> //保存10个string类型的数组
但是我们不能对内置数组类型进行拷贝或对象赋值操作,但是array并无此限制
使用assign(仅顺序容器)
这个函数允许我们从不同的但相容的类型赋值,或者从容器的一个子序列赋值
0 0
- 【足迹C++primer】25、容器库概览
- 【足迹C++primer】24、顺序容器概述
- 【足迹C++primer】26、顺序容器操作
- 【足迹C++primer】29、容器适配器
- 【足迹C++primer】35、特定容器算法
- 【足迹C++primer】36、使用关联容器
- 【足迹C++primer】37、关联容器概述
- 【足迹C++primer】55、容器和继承
- c++primer之顺序容器(容器库概览)
- 【足迹C++primer】38、关联容器操作(1)
- 【足迹C++primer】38、关联容器操作(2)
- 【足迹C++primer】表达式求值
- 【足迹C++primer】33、再探迭代器
- 【足迹C++primer】15、定义抽象数据类型
- 【足迹C++primer】21、IO类
- 【足迹C++primer】22、文件输入输出
- 【足迹C++primer】23、string流
- 【足迹C++primer】32、定制操作_1
- http://zhidao.baidu.com/link?url=y6eEjPtIIRZZkqTBqm55AsmfJmMLClbL_5DPQTDC3fUS6hYD9o8Iy7vrNaCUse_K9Wx
- java数据加密
- http://www.cnblogs.com/yuzhongwusan/archive/2009/06/15/1503611.html
- 2014六月,请善待我
- 大型网站技术架构(八)--网站的安全架构
- 【足迹C++primer】25、容器库概览
- vim中文编码问题
- Android OTG支持USB读卡器
- Build unsigned .ipa without Developer Account on Xcode 5
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- 如何查找vim环境设定参数的帮助
- 黑马程序员_map
- 体会二进制文件和字符串的操作
- android应用改包名