C++:容器vector(学习笔记)

本文详细介绍了C++Vector容器的概念,包括其构造方式(默认和带参),赋值操作,元素大小的获取与调整,末尾元素的添加和移除,插入、删除功能,以及访问元素的方法。
摘要由CSDN通过智能技术生成

容器

  • Vector容器概念

    vector是将元素置于一个动态数组中加以管理的容器。

    • 1.1 容器对象的构成

      1. 默认构造函数

        vector采用模板类实现,vector对象的默认构造形式

        vector<T> vecT;

        • vector<int> v1; //一个存放int的vector容器
        • vector<student> v2; //一个存放student(类对象)的vector容器
      2. 带参构造函数

        vector(begin,end); //构造函数将(begin,end)区间中的元素拷贝给本

        ​ 身。注意该区间是左闭右开的区间

        • ​​​​请添加图片描述

      vector(n,elem); //构造函数将n个elem拷贝给本身

      • 请添加图片描述

      vector(const vector & v1); //拷贝构造函数

      • 请添加图片描述
        //拷贝构造函数

      请添加图片描述

    • 1.2 vector的赋值

      1. vector的赋值

        v2.assign(2,288); //改变原来vector中的元素个数和值

        v2.assgin(v3.begin(),v3.end()); //使用迭代器重新赋值

        int test1[]={1,2,3,4,5};

        v2.assign(test1,test1+3); //使用指针赋值

        v2=v3; //赋值运算

    • 1.3 vector的大小

      vector.size() ; //返回容器中元素的个数

      vector.empty(); //判断容器是否为空

      vetctor.resize(num) //重新定义指定容器的长度为num,若容器变长,则以默

      认值“0”填充新位置。如果容器变短,则末尾超出容器长

      度的元素被删除。

      • 请添加图片描述
        //重新定义大小,扩大时指定新增的值

        请添加图片描述
        //重新定义大小,扩大时不指定新增的大小,

        ​ 新增加的默认值为0

        请添加图片描述
        //仅重新定义大小

    • 1.4 vector末尾的添加移除操作

      v2.push_back(1); //在容器尾部加入一个元素

      v2.pop_back(); //移除容器中最后一个元素

    • 1.5 vector的插入

      vector.insert(pos,elem); //在pos(迭代器)位置插入一个elem元素的拷贝,返回数

      据的位置。

      • 插入单个元素

        v2.insert(v2.begin()+1,888);//在v2的第二个元素位置插入一个888

      vector.insert(pos,n,elem); //在pos(迭代器)位置插入n个elem数据,无返回值。

      • 插入多个元素

        v2.insert(b2.begin(),3,888);//在v2的开始位置上插入3个888

      vector.insert(pos,begin,end); //在pos(迭代器)位置插入(begin,end)区间的数据,无

      返回值

      v2.insert(v2.begin()+3,v3.begin(),v3.end());//在v2的第3个位置插入v3

      总结:此方法效率低,每次插入都要挪动元素位置

    • 1.6 vector的删除

      1. 把整个 vector 都删除

        v2.clear();

        cout<<"调用 v2.clear() 后"<

      2. 删除单个元素

        v2[1] = 888;

        v2.erase(v2.begin()+1);

      3. 删除多个元素

        v2.erase(v2.begin(), v2.begin()+3);

    • 1.7 vector的返回操作

      vector<int> v2(10,2);

      1. 使用at

        v2.at(2); //传回索引值

      2. 使用下标操作

        for(int i=0;i<v2.size();i++)

        {

        cout<<v2[i]<<endl;

        }

      3. 使用接口返回的引用

        v2.front()=555; // v2的第一个元素

        v2.back()=999; // v2的最后一个元素

        注意:在使用第1,2中方法的时候注意不要越界

    • 1.8 vector的访问

      begin, cbegin 返回指向初始的迭代器)

      end,cend返回指向末尾的迭代器

      rbegin,crbegin返回指向初始的逆向迭代器

      rend,crend返回指向末尾的逆向迭代器

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值