- 在C++中,vector是一个经常会被用到的容器,下面对这个容器进行说明:
- 要想使用vector,必须包含适当的头文件:#include <vector>
- C++语言既有类模板也有函数模板,其中vector是一个类模板,模板本身不是函数或者类,我们需要提供一些额外的信息来指定模板到底实例化成什么样的类,提供信息的方式为在模板名字后面跟一对尖括号,在括号内放上信息:
- vector<int> ivec; //ivec保存int类型的对象
- 定义和初始化vector对象:
1 vector v1 v1是一个空vector,元素类型为T,执行默认初始化2 vector v2(v1) v2中包含有v1所有元素的副本3 vector v2 = v1 等价于v2(v1)4 vector v3(n,val) v3包含了n个重复的元素,每个元素的值都为val5 vector v4(n) v4包含了n个重复的执行了默认初始化的对象6 vector v5{a,b,c......} v5包含了初始值个数的元素,每个元素都赋予相应的初始值7 vector v5 = {a,b,c......} 等价于v5{a,b,c......}
-
- 实际上,最常用的方式就是定义一个空的vector对象,然后利用函数push_back将值当成vector对象的尾元素压到vector对象的尾端
- 可使用下标访问元素: vec[index] ,index由0开始
- 使用迭代器访问元素:
1 vector ::iterator it;2 for(it = vec.begin();it != vec.end();it++){3 cout << *it << endl; 4 }
- 插入元素: vec.insert(vec.begin()+i,a) //将a插入到下标为i的位置上
- 删除元素: vec.erase(vec.begin()+2); //删除第三个元素
- 查看vector中元素的个数: vec.size()
- 清空vector: vec.clear()
- 二维向量:
- 与数组相同,向量也可以增加维数,例如: vector<vector<int> > b(10,vector<int>(5));//vector b含有10个元素,每个元素都是vector<int>,每个元素都含有5个默认值初始化的元素,即5个0