SiriBlog

siriyang的个人博客


  • 首页

  • 排行榜

  • 标签111

  • 分类33

  • 归档285

  • 关于

  • 搜索

STL常用模板:Double Ended Queue双向队列

发表于 2020-01-08 更新于 2021-10-29 分类于 计算机 , 技术 , C/C++ 阅读次数: Valine:
本文字数: 2.6k 阅读时长 ≈ 2 分钟

C/C++参考文档

概念

  双向队列和向量很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样)。

头文件

1
#include <deque>

名字空间

1
std

构造函数

语法:

1
2
3
4
5
deque();
deque( size_type size );
deque( size_type num, const TYPE &val );
deque( const deque &from );
deque( input_iterator start, input_iterator end );

  C++ Deques能用以下方式创建:

  • 无参,创建一个空双向队列
  • size - 创建一个大小为size的双向队列
  • num and val - 放置num个val的拷贝到队列中,
  • from - 从from创建一个内容一样的双向队列
  • start 和 end - 创建一个队列,保存从start到end的元素。

  例如,下列代码创建并显示一个双向队列:

1
2
3
4
5
6
7
8
9
// 创建一个双向队列,里面有10个1
deque dq( 10, 1 );
// 创建一个迭代器
deque::iterator iter;

// 显示这个双向队列
for( iter = dq.begin(); iter != dq.end(); iter++ ){
cout << *iter << endl;
}

运算符

语法:

1
[]

  你可以使用[]操作符访问双向队列中单个的元素。


常用函数

assign

语法:

1
2
void assign( input_iterator start, input_iterator end);
void assign( Size num, const TYPE &val );

  assign()函数用start和end指示的范围为双向队列赋值,或者设置成num个val。


at

语法:

1
reference at( size_type pos );

  at()函数返回一个引用,指向双向队列中位置pos上的元素。


back

语法:

1
reference back();

  back()返回一个引用,指向双向队列中最后一个元素。


begin

语法:

1
iterator begin();

  begin()函数返回一个迭代器,指向双向队列的第一个元素。


clear

语法:

1
void clear();

  clear()函数删除双向队列中所有元素。


empty

语法:

1
bool empty();

  empty()返回真如果双向队列为空,否则返回假。


end

语法:

1
iterator end();

  end()函数返回一个迭代器,指向双向队列的尾部。


erase

语法:

1
2
iterator erase( iterator pos );
iterator erase( iterator start, iterator end );

  erase()函数删除pos位置上的元素,或者删除start和end之间的所有元素。返回值是一个iterator,指向被删除元素的后一个元素。


front

语法:

1
reference front();

  front()函数返回一个引用,指向双向队列的头部。


get_allocator

语法:

1
allocator_type get_allocator();

  get_allocator()函数返回双向队列的配置器。


insert

语法:

1
2
iterator insert( iterator pos, size_type num, const TYPE &val );
void insert( iterator pos, input_iterator start, input_iterator end );

  insert()在pos前插入num个val值,或者插入从start到end范围内的元素到pos前面。


max_size

语法:

1
size_type max_size();

  max_size()返回双向队列能容纳的最大元素个数。


pop_back

语法:

1
void pop_back();

  pop_back()删除双向队列尾部的元素。


pop_front

语法:

1
void pop_front();

  pop_front()删除双向队列头部的元素。


push_back

语法:

1
void push_back( const TYPE &val );

  push_back()函数在双向队列的尾部加入一个值为val的元素。


push_front

语法:

1
void push_front( const TYPE &val );

  push_front()函数在双向队列的头部加入一个值为val的元素。


rbegin

语法:

1
reverse_iterator rbegin();

  rbegin()返回一个指向双向队列尾部的逆向迭代器。


rend

语法:

1
reverse_iterator rend();

  rend()返回一个指向双向队列头部的逆向迭代器。


resize

语法:

1
void resize( size_type num, TYPE val );

  resize()改变双向队列的大小为num,另加入的元素都被填充为val。


size

语法:

1
size_type size();

  size()函数返回双向队列中的元素个数。


swap

语法:

1
void swap( deque &target );

  swap()函数交换target和现双向队列中元素。

-------- 本文结束 感谢阅读 --------
相关文章
  • STL常用模板:MultiSet多元集合
  • STL常用模板:MultiMap多元字典
  • STL常用模板:Map字典
  • STL常用模板:Bitset位集合
  • STL常用模板:List链表
觉得文章写的不错的话,请我喝瓶怡宝吧!😀
SiriYang 微信支付

微信支付

SiriYang 支付宝

支付宝

  • 本文标题: STL常用模板:Double Ended Queue双向队列
  • 本文作者: SiriYang
  • 创建时间: 2020年01月08日 - 14时01分
  • 修改时间: 2021年10月29日 - 18时10分
  • 本文链接: https://blog.siriyang.cn/posts/20200108145405id.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
C/C++ 文档 STL
STL常用模板:Bitset位集合
STL常用模板:List链表
  • 文章目录
  • 站点概览
SiriYang

SiriYang

大数据研究生
285 日志
32 分类
86 标签
RSS
GitHub E-Mail
Creative Commons
Links
  • 友情链接
  • 打赏记录
  • 作品商铺

  1. 概念
  2. 构造函数
  3. 运算符
  4. 常用函数
    1. assign
    2. at
    3. back
    4. begin
    5. clear
    6. empty
    7. end
    8. erase
    9. front
    10. get_allocator
    11. insert
    12. max_size
    13. pop_back
    14. pop_front
    15. push_back
    16. push_front
    17. rbegin
    18. rend
    19. resize
    20. size
    21. swap
蜀ICP备19008337号 © 2019 – 2023 SiriYang | 1.6m | 23:34
0%