当前位置:   article > 正文

c++中的队列_c++队列

c++队列

本文参考c++ queue 用法详解

1、什么是队列?

队列是C ++ STL中定义的简单序列或数据结构,它以FIFO(先进先出)的方式插入和删除数据。队列中的数据以连续方式存储。只能访问 queue 容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。
在这里插入图片描述

2、queue 队列的生成方式

下面展示如何创建一个保存字符串对象的 queue:

std::queue<std::string> words;
queue<string> words;
  • 1
  • 2

也可以使用拷贝构造函数:

std::queue<std::string> copy_words {words}; // A duplicate of words
  • 1

stack、queue 这类适配器类都默认封装了一个 deque 容器,也可以通过指定第二个模板类型参数来使用其他类型的容器:

std::queue<std::string, std::list<std::string>>words;
queue<pair<char,int>>words;
  • 1
  • 2

底层容器必须提供这些操作:front()、back()、push_back()、pop_front()、empty() 和 size()。

3、queue 基本操作

  • front():返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。
  • back():返回 queue 中最后一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。
  • push(const T& obj):在 queue 的尾部添加一个元素的副本。这是通过调用底层容器的成员函数 push_back() 来完成的。
  • push(T&& obj):以移动的方式在 queue 的尾部添加元素。这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的。
  • pop():删除 queue 中的第一个元素。
  • size():返回 queue 中元素的个数。
  • empty():如果 queue 中没有元素的话,返回 true。
  • emplace():用传给 emplace() 的参数调用 T 的构造函数,在 queue 的尾部生成对象。
  • swap(queue &other_q):将当前 queue 中的元素和参数 queue 中的元素交换。它们需要包含相同类型的元素。也可以调用全局函数模板 swap() 来完成同样的操作。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/975220
推荐阅读
相关标签
  

闽ICP备14008679号