IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [转]std::deque简单说明

    lincyang发表于 2010-12-28 17:00:00
    love 0

    本文转自:http://blog.chinaunix.net/u2/86575/showart_1734758.html

     

    std::deque是一个高效的双端队列,可以高效地进行插入和删除操作。

    以SGI C++ STL为例
    deque的基本结构是:有一个map ,map中的元素是一个记录了一个大小为512字节的线性容器。

    std::deque的构造方法:
    std::deque<int> queInt;//空队列
    std::deque<int> queInt(10);//长度为10的队列(其中元素被初始化为该类型的0值)
    std::deque<int> queInt(10,5);//长度为10的队列(其中元素被初始化为该类型的5)


    std::deque<int> queIntTemp(10,5);//长度为10的队列(其中元素被初始化为该类型的5)
    std::deque<int> queInt(queIntTemp);//以queIntTemp初始化queInt

    int nArray[5] = {0,1,2,3,4};
    std::deque<int> queInt(nArray, nArray + 5);//注意这里是nArray + 5,而不是nArray + 4

    插入数据的方法
    push_back();//末尾插入
    push_front();//前端插入

    删除方法
    pop_front();
    pop_back();
    erase();
    clear();

     

    lincyang注:

    如果需要使用“消息队列”,那么用deque是再好不过了!高效的插入和删除,是deque与vector和list的区别。

    从一个vector的尾部追加和删除元素是快速高效的;在list插入和删除元素的效率在任何位置都是等效的,但查询一个元素是费时的。



沪ICP备19023445号-2号
友情链接