zoukankan      html  css  js  c++  java
  • 8、泛型程序设计与c++标准模板库2.3双端队列容器

    双端队列容器是一种放松了访问权限的队列。除了从队列的首部和尾部访问元素外,标准的双端队列也支持通过使用下标操作符"[]"进行直接访问。

    它提供了直接访问和顺序访问方法。其头文件为<deque>。

    1)双端队列容器的构造函数

    有4中形式的构造函数:

    deque();//构造size()为0的双端队列容器

    deque(size_type n,const T& v=T());//初始化大小为n的双端队列,第二个参数是每个元素的初始值,默认为T()构造的对象

    deque(const deque& x);//拷贝构造函数,用双端队列x来初始化此双端队列容器

    deque(const_iterator first,const_iterator last);//从另一个支持const_iterator的容器中选取一部分来建立一个新的双端队列容器。

    2)使用双端队列容器

    a、访问双端队列容器信息

    对于双端队列容器,

    size()返回双端队列容器中元素的个数;

    max_size()返回双端队列容器中最多可以容纳元素的个数;

    empty()当双端队列中没有元素时,则返回true

    b、向双端队列容器中放置元素

    有以下方法可以把元素放入双端队列容器中:构造函数、push_back()方法、insert()方法、[]运算符、=运算符、swap函数。还有push_front函数,其原型为:

    void push_front(const T& x);//将元素x添加在双端队列容器头部

    c、删除双端队列容器中的元素

    使用pop_back()、pop_front()、erase()、clear()可以从双端队列中删除元素,与向量容器相比,多了一个pop_front()函数,其原型:

    void pop_front();//删除双端队列容器中的最前端元素

    d、访问双端队列容器中的元素

    双端队列容器即可以顺序访问也可以直接访问。双端队列容器中的元素可以联合使用pop_front()、pop_back()、front()、back()成员函数进行顺序访问,也可以使用迭代器来顺序遍历双端队列。由于支持随机访问迭代器,所以可以进行随机访问。

    e、例子

    使用双端队列容器保存双精度数值序列

    #include<iostream>
    #include<deque>  //包含双端队列容器头文件
    #include<algorithm>//包含算法头文件
    #include<iterator>
    using namespace std;
    int main()
    {
     deque<double> values;//声明一个双精度型deque序列容器
     ostream_iterator<double> output(cout," ");
     values.push_front(2.2);//应用函数push_front在deque容器开头插入元素
     values.push_front(3.5);
     values.push_back(1.1);//应用函数push_back在deque同期结尾插入元素
     cout << "values contains:";
     for (int i = 0; i < values.size(); ++i)
      cout << values[i] << ' ';
     values.pop_front();//应用函数push_front从deque容器中删除第一个元素
     cout << " after pop_front values contains:";
     copy(values.begin(),values.end(),output);
     values[1] = 5.4;//用用操作符[]来重新赋值
     cout << " after values[1]=5.4 values contains:";
     copy(values.begin(), values.end(), output);
     getchar();
     cout << endl;
    }

  • 相关阅读:
    代码整洁之道读书笔记 1
    PhoneGap开发环境搭建
    Android + Eclipse + PhoneGap 2.9.0 安卓最新环境配置,部分资料整合网上资料,已成功安装.
    Oracle只读用户角色的建立
    linux系统下创建oracle表空间和用户权限查询
    Extjs的grid的单元格中加载超链接和按钮
    从网上找的Android实用代码,记录备用
    Android上实现各种风格的隐藏菜单,比如左右滑动菜单、上下滑动显示隐藏菜单
    android highcharts 柱状图例子
    web打印控件Lodop轻松输出清晰的图表和条码
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6308724.html
Copyright © 2011-2022 走看看