vector容器其实就是相当于一个数组,但是又不同于数组,数组是一个静态空间,其大小是在其定义是已经固定好的,但是vector容器不是,它可以在尾部插入和删除数据,它的最大优势是是可以随机访问数据,在尾部插入,删除数据的时间复杂度为O(1),但是如果不是在尾部对数据进行插入的时间复杂度为O(n)。
头文件是#include<vector>
一、创建Vector对象的三种方式
1.不指定容器的大小,如用来存储整型的容器:vector<int> v;
2.创建时指定容器的大小,如用来存储10个double的容器:vector<double> v(10);
3.vector<double>v(10,8.6);
这条语句的意思是定义了v向量的容器,共有10个元素,每个元素的值是8.6.
vector 常用函数
v.push_back();//在尾部插入
v.size();//返回容器大小
v.erase();//删除指定数据
v.insert();//在任意位置前插入一个
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v;
int m,i=0;
cin >> m;
while(m--)
{
v.push_back(m);
}
cout << v.size() << endl;
}
结果:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v;
int m,i=0;
cin >> m;
while(m--)
{
v.push_back(m);
}
cout << "容器原来数值";
for (int i = 0; i < v.size();i++)
{
cout << v.at(i) << " ";
}
cout << endl;
v.insert(v.begin(), 22);
v.insert(v.end(), 55);
//v.insert(v.end()+ 3, 44);
cout << "插入数值后";
vector<int>::iterator it;
for (it=v.begin ();it!=v.end();it++)
{
cout << *it << " ";
}
cout << endl;
cout << "大小"<<v.size() << endl;
}
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v(10);
for(int i=0;i<10;i++)
{
v[i]=i;cout<<v[i];
}
cout<<endl;
v.erase (v.begin ()+1,v.begin()+5);
for(int i=0;i<v.size();i++)
{
cout<<v[i];
}
}