简介
在C++中,向量(vector)是标准模板库(STL)的一部分,它是一个封装了动态大小数组的顺序容器。它能够存放各种类型的对象。简单来说,vector就是一个能够存放任意类型的动态数组。
1 遍历
vector使用连续的存储空间来存储元素,这意味着可以使用常规指针,元素下标,以及迭代器来访问存储空间中的元素。
迭代器:
void PrintfVector(vector<int> v)
{
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
}
下标:
void PrintfVector(vector<int> v)
{
for(int i=0;i<v.size();i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
}
2 创建与初始化
vector容器的拷贝赋值,除了常规使用重载等号操作符,还可以使用内置的assign()函数。
2.1默认创建
vector<int> v1;
2.2拷贝创建
vector<int> v2(v1);
vector<int> v3;
v3=v1;
vector<int> v4; 使用assign()函数方法拷贝赋值
v4.assign(v1.begin(),v1.end());
2.3创建含有n个相同元素的vector
vector<int> v5(3,9); //创建含有 3个9 的vector容器
vector<int> v6; //使用assign()函数方法创建含有 6个9 的vector容器
v6.assign(6,9);
实例代码:
//02创建与初始化
void test02()
{
//1.默认创建
vector<int> v1;
for (int i = 0; i < 3; i++)
{
v1.push_back(20+i);
}
PrintfVector(v1);
//2.拷贝创建
vector<int> v2(v1);
PrintfVector(v2);
vector<int> v3;
v3=v1;
PrintfVector(v3);
vector<int> v4;
v4.assign(v1.begin(),v1.end()); //assign()函数方法
PrintfVector(v4);
//3.创建含有n个相同元素的vector
vector<int> v5(3,9);
PrintfVector(v5);
vector<int> v6; //assign()函数方法
v6.assign(6,9);
PrintfVector(v6);
}
运行结果图:
3 增加元素
3.1尾部插入元素
v1.push_back(elem);
3.2使用迭代器在任意位置插入元素
vector<int>::iterator it = v1.begin();
v1.insert(it, elem); //在迭代器it位置插入元素elem
v1.insert(it, n,elem); //在迭代器it位置插入n个元素elem
实例代码: