vector向量容器:
1.创建vector对象的三种形式:
(1)不指定容器元素的个数 vector<int> v;
(2)创建时指定容器的大小 vector<int> v(10);
(3)指定大小并赋初值 vector<int> v(10,0); 10个元素初值都是0
2.尾部元素扩张
使用push_back()对vector容器在尾部追加新元素,尾部追加新元素,vector容器会自动分配新内存空间。
Eg:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
v.push_back(2);
v.push_back(5);
v.push_back(10);
for(vector<int>::iterator i=v.begin();i!=v.end();i++)
cout<<*i<<" ";
cout<<endl;
return 0;
}
3.下标方式访问vector元素
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v(3);
v[0]=2;
v[1]=5;
v[2]=10;
for(int i=0;i<3;i++)
cout<<v[i]<<" ";
cout<<endl;
return 0;
}
4.元素的插入
Insert()方法可以在vector对象的任意位置前插入一个新的元素,同时vector自动扩展空间。
Eg:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
int a,i,k;
for(i=0;i<5;i++)
{
cin>>a;
v.push_back(a);
}
cin>>k;
v.insert(v.begin()+k,10);
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
return 0;
}
5.元素的删除
erase()方法可以删除vector迭代器所指的一个元素或一段区间中的所有元素
clear()方法则一次性删除vector中所有的元素
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<10;i++)
v.push_back(i);
v.erase(v.begin()+2); //删除下标为2的元素
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
v.erase(v.begin()+1,v.begin()+5); //注意这里是删除下标从1到4的所有元素
for(it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
v.clear();
cout<<v.size()<<endl;
return 0;
}
6.反向排列算法
reverse()反向排列算法,需要定于头文件#include <algorithm>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<10;i++)
v.push_back(i);
reverse(v.begin(),v.end());
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
return 0;
}
7.sort 可以自己设置比较函数cmp
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<10;i++)
v.push_back(9-i);
sort(v.begin(),v.end());
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++)
cout<<*it<<" ";
cout<<endl;
return 0;
}
8.向量的大小
使用size()方法可以返回向量的大小,即元素的个数
使用empty()方法返回向量是否为空,非空返回0,空则返回1
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<10;i++)
v.push_back(i);
vector<int>::iterator it;
cout<<v.size()<<endl;
v.clear();
cout<<v.empty()<<endl;
return 0;
}
http://blog.youkuaiyun.com/acdreamers/article/details/8680967