现在的位置: 首页 > 综合 > 正文

vector删除

2017年10月10日 ⁄ 综合 ⁄ 共 1649字 ⁄ 字号 评论关闭
    vector<int> vec;
    for (int i = 0; i <= 20; ++i) {
        vec.push_back(i);
    }
    
    
    
    vector<int>::iterator it = vec.begin();
    while (it!=vec.end()) {
        int temp = (*it);
        if (temp % 5 == 0) {
            vec.erase(it);
        }else
        {
            ++it;
        }
    }
    
        //打印
    for (int i = 0; i < vec.size(); ++i) {
            cout << vec[i] << endl;
    }

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;   
}

【上篇】
【下篇】

抱歉!评论已关闭.