C++ Deque 双向队列

发表于:2014-4-24 10:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:onesafe    来源:51Testing软件测试网采编

  Deque是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque  两端添加或删除元素的开销很小。它不需要重新分配空间,所以向末端增加元素比vector 更有效。
  实际上,deque  是对vector 和list  优缺点的结合,它是处于两者之间的一种容器。
  deque 的特点:
  (1) 随机访问方便,即支持[ ]  操作符和vector.at()  ,但性能没有vector 好;
  (2)  可以在内部进行插入和删除操作,但性能不及list  ;
  (3)  可以在两端进行push  、pop  ;
  (4)  相对于verctor 占用更多的内存。
  双向队列和向量很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样)。
  1.Constructors  创建一个新双向队列
  语法:
  deque();//创建一个空双向队列
  deque( size_type size );// 创建一个大小为size的双向队列
  deque( size_type num, const TYPE &val ); //放置num个val的拷贝到队列中
  deque( const deque &from );// 从from创建一个内容一样的双向队列
  deque( input_iterator start, input_iterator end );
  // start 和  end - 创建一个队列,保存从start到end的元素。
  2.Operators 比较和赋值双向队列
  //可以使用[]操作符访问双向队列中单个的元素
  3.assign() 设置双向队列的值
  语法:
  void assign( input_iterator start, input_iterator end);
  //start和end指示的范围为双向队列赋值
  void assign( Size num, const TYPE &val );//设置成num个val。
  4.at() 返回指定的元素
  语法:
  reference at( size_type pos ); 返回一个引用,指向双向队列中位置pos上的元素
  5.back() 返回最后一个元素
  语法:
  reference back();//返回一个引用,指向双向队列中最后一个元素
  6.begin() 返回指向第一个元素的迭代器
  语法:
  iterator begin();//返回一个迭代器,指向双向队列的第一个元素
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号