1、容器特性
1)顺序序列
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。
2)动态数组
支持对序列中的任意元素进行快速直接访问,甚至可以通过指针算述进行该操作。操供了在序列末尾相对快速地添加/删除元素的操作。
3)能够感知内存分配器的
容器使用一个内存分配器对象来动态地处理它的存储需求。
2、基本操作
a. 头文件#include<vector>
b. 创建vector对象:vector dp;
c. 尾部插入数字:vec.push_back(a);
d. 使用下标访问元素,cout<<dp[0]<<endl;记住下标是从0开始的。
使用迭代器访问元素.
vector::iterator it;
for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl;
e. 插入元素: vec.insert(vec.begin()+i,a);在第i个元素后面插入a;
f. 删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
h. 向量大小:vec.size();
g. 清空:vec.clear();//清空之后,vec.size()为0
3、 vector容器的初始化
vector的使用首先需要加一个头文件#include<vector>;
vector<int> a; 最一般的初始化方法,就是定义一个容器a;
vector<int>a(n); 定义一个长度为n的容器a;
vector<int> a[n]; 声明了一个包含n空向量的数组。
vector<int>a(n,x); 定义一个长度为n,每个值都初始化为x;
vector<int> a{n}; 声明了一个包含单个元素n的向量
除此之外,还可以定义一个vector<int>a[10]; 也就是可以定义一个vector数组,里面的每个元素都是vector容器
4、 常见定义方法:
(1) vector<int> a(5); //定义了5个整型元素的向量(<>中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的.
(2)vector<int> a(5,1);//定义了5个整型元素的向量,且给出每个元素的初值为1
(3)vector<int> a(b); //用b向量来创建a向量,整体复制性赋值
(4)vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素
(5)int b[7]={1,2,3,4,5,9,8}; vector<int> a(b,b+7); //从数组中获得初值
标签:容器,begin,元素,学习,vector,vec,向量 From: https://blog.51cto.com/u_16244389/7379467