std::queue的使用

定义于头文件 <queue>

template<
    class T,
    class Container = std::deque<T>
> class queue;


std::queue 类是容器适配器,它给予程序员队列的功能——尤其是 FIFO (先进先出)数据结构。

类模板表现为底层容器的包装器一一只提供特定的函数集合。 queue 在底层容器尾端推入元素,从首端弹出元素。

模板形参
queue 模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。

成员函数
这里只列出关于元素操作的成员函数。
元素访问
front 访问第一个元素
back 访问最后一个元素
容量
empty 检查底层的容器是否为空,为空返回true
size 返回容纳的元素数
修改器
push 向队列尾部插入元素
pop 删除第一个元素
swap 交换内容
emplace(C++11) 于尾部原位构造元素

在项目应用当中,一般是一个线程负责向任务队列添加任务push,另外线程负责读取元素front和删除元素pop,注意关于queue的任何添加、判断操作都需要用线程锁保护(若为单线程处理则不需要)。

示例:

std::queue<int> test;  // empty queue
test.empty();       //队列是否为空
int size;
size = test.size();    //队列元素个数
int n; 
n = test.front();     //返回队头元素 
n = test.back();     //返回队尾元素 
test.push(20);         //向队列添加元素,添加到队尾 
test.pop();         //删除下一个元素,也即队头元素


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值