标准库vector类型
1、vector不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector类型的每一种都指定了其保存元素的类型。因此,vector<int>和vector<string>都是数据类型。
2、vector对象的定义和初始化
①vector<T> v1;
②vector<T> v2(v1);
③vector<T> v3(n,i);
④vector<T> v4(n);
3、vector对象的操作
①v.empty()
②v.size()
③v.push_back(t)
④v[n]
⑤v1=v2
⑥v1==v2
⑦!=,<,<=,>,>=
4、vector对象的size
vector<int>::size_type:对的
vector::size_type:错的
5、下标操作不添加元素
必须是已存在的元素才能用下标操作符进行索引。
6、迭代器
迭代器是一种检查容器内元素并遍历元素的数据类型。
所有的标准库容器都定义了响应的迭代器类型,而只有少数的容器支持下标操作。
例如:vector<int>::iterator it;
begin和end操作:
vector<int>::iterator it=ivec.begin();
7、迭代器类型可使用解引用操作符(*)来访问迭代器所指向的元素
*it = 0;
8、迭代器的其他操作
==,!=:如果两个迭代器对象指向同一个元素,则它们相等,否则不等。
for(vector<int>::iterator it=ivec.begin();it!=ivec.end();it++) *it=0;
9、
vector<int>::const_iterator it:it自身的值可以改变,但是不可以改变it所指向的元素的值
const vector<int>::iterator it:it自身的值不可以改变
10、任何改变vector长度的操作都会使已存在的迭代器失效。例如,在调用push_back之后,就不能再信赖指向vector的迭代器的值了。