queue容器的逻辑结构是队列,物理结构可以是数组或链表,主要用于多线程之间的数据共享。
第一个参数是元素类型,第二个参数是底层容器类型。
包含头文件: #include<queue>
queue类模板的声明:
template <class T, class _Container = deque<T>>
class queue{
……
}
第一个模板参数T:元素的数据类型。
第二个模板参数_Container:底层容器的类型,缺省是std::deque,可以用std::list,还可以用自定义的类模板。
queue容器不支持迭代器。
#include <iostream>
#include <queue>
#include <list>
using namespace std;
//queue容器 逻辑结构是队列,物理结构可以是数组或者链表。主要用于多进程之间的数据共享
// 不支持迭代器
//
class girl
{
public:
string name_;
int bh_;
girl(const string name, const int bh) :name_(name), bh_(bh) {}
};
int main()
{
// template <class T, class _Container = deque<T>>
// class queue {
// ……
// }
// 第一个模板参数T:元素的数据类型。
// 第二个模板参数_Container:底层容器的类型,缺省是std::deque,可以用std::list,还可以用自定义的类模板。
//queue<girl, list<girl>> q; // 物理结构为链表。
//queue<girl, deque<girl>> q; // 物理结构为数组。
//queue<girl> q; // 物理结构为数组。
//queue<girl, vector<girl>> q; // 物理结构为vector,不可以。
queue<girl, list<girl>> q;
q.push(girl("月月鸟", 1));
q.emplace("光军", 2); //效率高
q.push(girl("鹏辉", 3));
while (q.empty() == false)
{
cout << q.front().bh_ << " " << q.front().name_ << " "; //q.front()返回队头元素
q.pop();
}
}

848

被折叠的 条评论
为什么被折叠?



