• deque 类


    题外: 'A' +1='B'

    1、deque被称为双端队列,它也是一种顺序容器。可通过迭代器存取元素 ,也可以通过下标顺序 存取元素

     for(i=0;i<d1.size();i++)

    {

            cout<<d1[i];

            d1[i] = 0;
    }

    2、deque具有的性质

    <1> 利用位置索引可以存取容器中的元素

    <2> 可以通过任何顺序迭代容器中的元素

    <3> 可以在容器的开始和末尾追加/删除元素

    3、需要的命令

      #include<deque>

      using namespace std;

    构造类函数

    1、创建deque容器并初始化容器中的元素

    <1>deque<int> d1;---------------------------------作用是构造一个空洞deque容器,该容器内容为空

    <2>deque<int> d2(5,10);--------------------------作用是将10的值 重复5次 存放到容器中

    <3>deque<int> d3(d2.begin(),d2.end());--------作用是将输入对象中迭代器first和last之间的元素存放到容器中

    <4>deque<int> d4(d3);----------------------------作用是用另一个双端队列 初始化deque容器

    2、析构函数 ~deque()  在程序结束时由系统自动调用

    3、operator(运算符)= 函数 -----------赋值deque中的内容

         例:d2 = d1; -------------------用d1中的元素替换掉 d2中的 元素

    迭代器函数

    1、deque容器 包含四个迭代器 begin end rbegin rend 

    2、注意:begin函数返回第一个元素的位置;end函数返回最后一个元素的后一个位置; rbegin函数返回第一个元素之前的位置;rend函数返回最后一个元素的位置

                 front函数 返回第一个元素  ;back函数返回最后一个元素

    3、声明迭代器--------deque<数据类型>::iterator it;

        用例:deque<char>::iterator it;

         迭代器与迭代器函数配合使用-------用例:it=d1.begin()

    容量类函数

    1、size函数返回deque容器实际元素个数,max_size函数返回deque容器所能容纳的最大元素个数

    2、empty函数的作用是判断deque容器是否为空,为空返回true,不为空返回false

    3、resize函数的作用是重新调整deque容器的大小(改变deque容器的实际元素个数,而不是容器的存储空间大小),使其包含sz个元素

         如果sz小于原来deque容器的大小,则第sz之后的元素被抛弃 --------------------d.resize(3)

         如果sz大于原来deque容器的大小,这容器的大小扩展为sz个元素并在末尾追加元素c。如果省略了参数c,则插入的元素值为0--------------d.resize(8,50)---50是c

    存取类函数-----operator[]函数、at函数和、front函数、back函数

    1、operator[]函数----------------类似于数组下标的东西,但是不会进行越界检查(deque 第一个元素 的下标由0开始)

    2、at函数------作用于operator[]函数类似 但是会自动越界检查 如果越界则抛出一个异常

          用例:cout<<d.at(0);

    3、 front 与 back 函数

    操作类函数

    1、assin函数---------作用是将元素赋值给当前的deque容器,覆盖之前存在的全部内容

    <1> 利用迭代器 将[first,last)之前的元素赋值给当前的deque容器---------d2.assign(d1.begin()+2,d1.end()-1)

    <2>将重复的n个元素值u赋值给当前的deque容器-------------------d2.assign(6,10)------6个10

    2、push_back函数的作用是在deque容器的最后一个元素之后添加元素x,容器个数加一-----------------d.push_back(x);

    3、push_front函数的作用是在deque容器的第一个元素之前添加元素x,容器个数加一-----------------d.push_front(x);、

    4、pop_back函数的作用是移除deque容器中的最后一个元素,容器个数减一--------------------------d.pop_back(x);

    5、pop_front函数的作用是移除deque容器中的第一个元素,容器个数减一--------------------------d.pop_front(x);

    6、insert函数的作用是在deque 的指定位置插入元素x------------------------------双端队列的insert可以在任意位置插入元素,最前面最后面都行(push)

            指定位置(即position的位置)  通常是通过迭代器来实现的

    <1>第一个函数的作用是将x插入到deque容器中第position个元素之前-----------------返回新插入元素的迭代器-----it= d.insert(it,10)

    <2>第二个函数的作用是将n个x插入到deque容器中第position个元素之前------------------------无返回值---------- d.insert(it,2,20)----2个20

    <3>第三个函数的作用是将输入对象中的[first,last)之间的元素插入到第position个元素之前------------无返回值-----d.insert(it,d1.begin(),d1.end()-1);

    7、erase函数-----------删除deque中的指定的元素-----------容器自动往前移动

                 指定位置(即position的位置)  通常是通过迭代器来实现的

    <1>第一个函数的作用是删除deque容器中的第position个元素

    <2>第二个函数的作用是撒谎拿出deque容器中的[first,last)之间的元素

                 函数返回  deque容器中最后被删除元素的后一个位置

    8、clear函数----------清除deque中的所有元素------调用后容器内元素个数为0

      用法:  d.clear();

    9、swap函数------------交换两个deque容器中的内容

    用例:d1.swap(d2);

  • 相关阅读:
    安装HyperV后VirtualBox打开故障
    TortoiseGit或TortoiseSVN在软件或系统更新后图标丢失的一个解决办法
    WSL2 Ubuntu1604 安装 GUI图形库 和 Qt Creator
    时序约束(小梅哥)
    FPGA加速
    吴恩达机器学习笔记
    Neural Network and Deep Learning 笔记【第二章;反向传播算法如何⼯作】
    Tcl学习记录
    Neural Network and Deep Learning 笔记【第一章;手写数字识别】
    操作符重载
  • 原文地址:https://www.cnblogs.com/wshyj/p/6275278.html
Copyright © 2020-2023  润新知