vector是STL中一种可变大小数组的序列容器。就像数组一样,vector也采用连续存储空间来存储元素,也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效,但是又不像数组,它的大小是动态改变的。
为了可以使用vector,必须在你的头文件中包含下面的代码
#include <vector>创建一个vector
//
创建一个type类型的空vector对象a
vector<type> a;
//创建包含500个type类型的vercot
vector<type> a(500);
//创建包含500个tyep类型的vector,并且都初始化为0
vector<type> a(500,0);
//创建一个a的拷贝b
vector<type> b(a);向vector添加一个数据
/*vector添加数据的缺省方法是push_back()。push_back()函数表示将数据添加到vector的尾部,并按需分配内存。例如,向vector<int> a中添加9个数据*/
for(int i = 1;I < 10;i++)
{
cin>>n;
a.push_back(n);
}访问vector中的数据
//a.at();
//a[];
vector<int> v;
for(int i = 0; i < 7; i++)
{
v.push_back(i);
}
cout<<v.at(6)<<endl;
cout<<v[6];删除vector中的数据
/.erase(it)
vector<int>::iterator it = v.begin();
while(it != v.end())
{
if(x == *it)//x为要删除的值,不是下标
{
/.erase(it);//容器在删除或插入一个元素后,原来的迭代器会失效
it = v.erase(it);//这才是正确用法
}
else
++it;
}
it = v.begin();
while(it != v.end())
{
cout<<*it<<endl;
it++;
}vector成员函数(容量)
函数 | 意义 |
|---|---|
v.size() | 容量大小 |
v.max_size() | 向量最大容量 |
v.resize() | 更改向量大小 |
v.capacity() | 向量真实大小 |
v.empty() | 向量判空 |
vector成员函数(修改)
函数 | 意义 |
|---|---|
v.assign() | 多个元素赋值 |
v.push_back() | 末尾添加元素 |
v.pop_back() | 末尾删除元素 |
v.inser(it,n,x) | 在迭代器it的前面插入n元素x |
v.erase() | 删除当前迭代器位置的元素 |
v.swap() | 交换两个向量元素 |
v.clear() | 清空向量元素 |
vector成员函数(迭代器)
函数 | 意义 |
|---|---|
v.begin() | 开始指针 |
v.end() | 末尾指针 |
vector成员函数(元素访问)
函数 | 意义 |
|---|---|
v[1] | 下标访问 |
v.at(1) | 下标访问 |
v.front() | 访问第一个元素 |
v.back() | 访问最后一个元素 |