STL - queue用法总结

6 篇文章 1 订阅

(我的STL相关的博客目录:https://blog.csdn.net/Kprogram/article/details/90408011

(queue-c++官网:http://www.cplusplus.com/reference/queue/

queue 是数据结构 “队列”s,拥有元素先进先出的特性。如果用数组来作为队列,长度是有限的,而且需要储存队列首尾的指针,不同于栈,队列还要考率元素出队列之后,留下的空挡该怎么处理。stl提供了一个不定长容器queue来作为队列,queue表留有有队列操作的各种成员函数,方便实用。

0 - 头文件:queue  命名空间:std

#include <queue>
using namespace std;

1 - 构建一个queue:queue<typename> name 

    typename指的是队列内数据类型,可以是 int, double, 可以是struct, class, 也可以是 queue, string等等。总之是一个数据对象都行。

    name 是你构建的队列的名字,符合变量命名法则就行。

    例:构建一个 int 类型的队列, 名字叫做 Q。

queue<int> Q;

2 - 使用queue:常用成员函数 ( 假设你创建的queue对象名字叫 Q )

    (粉红色的函数为常用函数!大部分情况下这些函数就够用了)

无参函数:

    empty():如果queue为空,返回True, 反之则返回 False。

    fornt():返回队列第一个元素。

    back():返回队列最后一个元素。

    pop():删除队列第一个元素,并不返回元素(一般与front()配合使用:先返front(),再pop(),相当于出队列操作)。

    size():返回queue内数据的个数(相当于数组长度)。

#一般用法:(假如是一个int类型的队列)
while(!Q.empty()) {//当队列不为空
    int I = Q.front(); Q.pop();//元素出队列
    ...//对I的某些操作

有参函数:

    push(type):把一个数据(type)压入栈顶(相当于入栈)。

        因为对于队列,push等同于push_back,所以queue 没有push_back成员函数!(已经试过了会报错)

    swap(Q1):交换Q 和 Q1 中的内容(Q1是另一个swap对象)。

//假设队列内的数据类型是data
class data {
  int a;
  int b;
public:
  data(int x, int y):a(x), b(y) {}
};
//push:
data d(1,2);
Q.push(d); 
//或者
Q.push(data(1,2)); 

    push的优化:emplace函数(点击蓝色字体>emplace<)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STL(Standard Template Library)中的 queue 是一个常用的容器适配器,用于实现先进先出(FIFO)的数据结构。它基于 deque(双端队列)实现,并提供了一些操作函数来操作队列中的元素。 你可以使用 <queue> 头文件来包含 queue 容器适配器的定义。以下是一些 queue 的常用操作: 1. push(element):将元素添加到队列的末尾。 2. pop():移除队列的第一个元素。 3. front():返回队列的第一个元素,但并不移除它。 4. back():返回队列的最后一个元素,但并不移除它。 5. empty():检查队列是否为空,如果为空则返回 true,否则返回 false。 6. size():返回队列中元素的个数。 下面是一个简单的示例代码,演示了如何使用 queue 容器适配器: ```cpp #include <iostream> #include <queue> int main() { std::queue<int> myQueue; myQueue.push(1); myQueue.push(2); myQueue.push(3); std::cout << "Front element: " << myQueue.front() << std::endl; std::cout << "Back element: " << myQueue.back() << std::endl; myQueue.pop(); std::cout << "Front element after popping: " << myQueue.front() << std::endl; std::cout << "Queue size: " << myQueue.size() << std::endl; return 0; } ``` 这个示例代码创建了一个整数类型的队列,并使用 push() 函数将三个元素添加到队列中。然后,使用 front() 和 back() 函数分别获取队列的第一个元素和最后一个元素,并使用 pop() 函数移除第一个元素。最后,使用 size() 函数获取队列中剩余元素的个数。 希望这个简单的示例能帮助你理解 queue 的基本用法。如果你还有其他问题,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值