zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    PAT (Advanced Level) 1114. Family Property (25)
    PAT (Advanced Level) 1113. Integer Set Partition (25)
    PAT (Advanced Level) 1112. Stucked Keyboard (20)
    PAT (Advanced Level) 1111. Online Map (30)
    PAT (Advanced Level) 1110. Complete Binary Tree (25)
    PAT (Advanced Level) 1109. Group Photo (25)
    PAT (Advanced Level) 1108. Finding Average (20)
    PAT (Advanced Level) 1107. Social Clusters (30)
    PAT (Advanced Level) 1106. Lowest Price in Supply Chain (25)
    PAT (Advanced Level) 1105. Spiral Matrix (25)
  • 原文地址:https://www.cnblogs.com/wshyj/p/6275278.html
Copyright © 2011-2022 走看看