BZ易风

导航

 

存取操作

插入和删除

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include <vector>
/*
vector数据存取操作
at(int idx); //返回索引idx所指的数据,如果idx越界,抛出out_of_range异常。
operator[];//返回索引idx所指的数据,越界时,运行直接报错
front();//返回容器中第一个数据元素
back();//返回容器中最后一个数据元素

vector插入和删除操作
insert(const_iterator pos, int count,ele);//迭代器指向位置pos插入count个元素ele.
push_back(ele); //尾部插入元素ele
pop_back();//删除最后一个元素
erase(const_iterator start, const_iterator end);//删除迭代器从start到end之间的元素
erase(const_iterator pos);//删除迭代器指向的元素
clear();//删除容器中所有元素

*/

void printVector(vector<int>& v)
{
    for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
    {
        cout << *it << " ";
    }
    cout << endl;
}
void test01()
{
    //存取操作
    vector<int> v;
    v.push_back(10);
    v.push_back(20);
    v.push_back(30);
    v.push_back(40);
    //at和[]同string用法一样
    //front
    cout << "v的front: " << v.front() << endl;
    cout << "v的back: " << v.back() << endl;

    //插入和删除
    //插入
    v.insert(v.begin()+1, 100);   //参数1 迭代器  参数2 N 可不填 参数3 插入的内容
    printVector(v);         //10,100,20,30,40

    //删除
    v.pop_back();           // 弹出末尾数据
    printVector(v);         //10,100,20,30  

    v.erase(v.begin());     //删除指定位置的元素  参数为迭代器 而不是索引
    printVector(v);         //100,20,30  

    v.erase(v.begin(), v.end()-1);    //删除指定迭代器从start到指定结束位置的数据  区间方式删除
    printVector(v);                   //30 

    v.clear();              //清空容器内的元素
    if (v.empty())
    {
        cout << "为空" << endl;
    }
    else {
        cout << "不为空" << endl;
    }
}

结果:

 

posted on 2021-08-26 15:47  BZ易风  阅读(30)  评论(0编辑  收藏  举报