当前位置:   article > 正文

std::queue的使用

std::queue

定义于头文件 <queue>

template<
    class T,
    class Container = std::deque<T>
> class queue;
  • 1
  • 2
  • 3
  • 4

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

参考资料:
https://zh.cppreference.com/w/cpp/container/queue

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/777962
推荐阅读
相关标签
  

闽ICP备14008679号