//正确的vector 删除元素的方法
for(std::vecotr<int>::iterator it = vc.begin() ; it != vc.end(); )
{
if( ***** )
{
it = vc.erase(it); //让迭代器继续指向这个位置
}
else
{
it++; //迭代器后移一位
}
for(std::vecotr<int>::iterator it = vc.begin() ; it != vc.end(); )
{
if( ***** )
{
it = vc.erase(it); //让迭代器继续指向这个位置
}
else
{
it++; //迭代器后移一位
}
}
//插入元素,删除第几个元素
vec.insert(迭代器,元素)
vec.erase(迭代器);
使用sort排序:需要头文件#include<algorithm>,
sort(vec.begin(),vec.end());(默认是按升序排列,即从小到大).
可以通过重写排序比较函数按照降序比较,如下:
定义排序比较函数:
bool Comp(const int &a,const int &b)
{
return a>b;
}
调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。
顺序容器:比如vecto、dequer,是顺序放入的,以数组形式存储。
关联容器:比如list、set、map,以不连续的节点形式存储的。
参考:http://www.cppblog.com/Herbert/archive/2009/01/08/70479.html