vector向量:插入和删除

1、vector的insert()方法:可以在vector对象的任意位置前插入一个新元素,同时,vector自动扩张一个元素空间,插入位置后的所有元素依次向后移动一个位置。

值得注意的是:insert()方法要求插入的位置,是元素的迭代器位置,而不是元素下标位置。

下面代码输出:8,2,1,7,9,3

#include<iostream>
#include<vector>
using namespace std;

int main()
{
    vector<int> v(3);
    v[0]=2;
    v[1]=7;
    v[2]=9;
   
    //在最前面的元素前插入8
    v.insert(v.begin(),8);
   
    //在第二个元素前插入新元素1
    v.insert(v.begin()+2,1);
   
    //在末尾插入新元素1
    v.insert(v.end(),3);     
   
    for(vector<int>::iterator it=v.begin();it!=v.end();it++)
    cout<<*it<<endl;
    system("pause");
    return 0;   
}
2、vector的erase()方法可以在vector中迭代器所指的一个元素或者一段区间的所有元素。

      clear()方法则一次性删除vector中的所有元素。其中的erase()方法只和迭代器指针相关,不能用数组下标实现

      删除。

/*****************************************************************************/
/*********************本程序设计向量的几个经典操作*****************/
/*****************************************************************************/
#include<iostream>
#include<vector>
using namespace std;

int main()

    vector<int> v;
    for(int i=0;i<10;i++)
    v.push_back(i);         //追加元素
    
    //删除单个元素,从0开始计数,删除第二个元素
    v.erase(v.begin()+2);   
    for(vector<int>::iterator it=v.begin();it!=v.end();it++)
    {
    cout<<*it<<" ";
    }
    cout<<endl;
   
    //删除一段元素,删除迭代器第一到第五区间所有元素
    v.erase(v.begin()+1,v.begin()+5);      //删除的起始位置和删除的最后一个元素的下一个位置   
    for(vector<int>::iterator it=v.begin();it!=v.end();it++)
    {
    cout<<*it<<" ";
    }
    cout<<endl;
   
    //清空向量操作输出大小验证
    v.clear();
    cout<<v.size()<<endl;
    
    
    system("pause");
    return 0;   
}