C++ STL中queue的成员函数

C++ STL中queue的成员函数

与 std::stack 一样, std::queue 的实现也是基于 STL 容器 vector、 list 或 deque 的。 queue 提供了几个
成员函数来实现队列的行为特征。表 24.2 通过程序清单 24.3 所示的整型 queue numsInQ 解释了 queue
的成员函数。

函数 描述
push() 在队尾(即最后一个位置)插入一个元素 numsInQ.push (25);
pop() 将队首(即最开始位置)的元素删除 numsInQ.pop ( );
front() 返回指向队首元素的引用 cout << "Element at front: " << numsInQ.front ( );
back() 返回指向队尾元素(即最后插入的元素)的引用 cout << "Element at back: " << numsInQ. back ( );
empty() 检查队列是否为空并返回一个布尔值 if (numsInQ.empty ( )) cout << “The queue is empty!”;
size() 返回队列中的元素数 size_t nNumElements = numsInQ.size ( );

STL queue 没有提供 begin( )和 end( )等函数,而大多数 STL 容器都提供了这些函数,包括 queue
类在底层使用的 deque、 vector 或 list。这是有意为之的,旨在只允许对 queue 执行符合队列行为特征 的操作。

对于 queue,元素在末尾插入,这是使用成员方法 push( )完成的:
numsInQ.push (5); // elements pushed are inserted at the end
删除是在开头进行的,这是使用成员方法 pop( )完成的:
numsInQ.pop (); // removes element at front
与 stack 不同, queue 允许查看其两端的元素,即容器的开头和末尾:
cout << "Element at front: " << numsInQ.front() << endl;
cout << "Element at back: " << numsInQ.back () << endl;
程序清单 24.4 演示了如何插入、删除和查看元素。

0: #include <queue>
1: #include <iostream>
2:
3: int main ()
4: {
5: using namespace std;
6: queue <int> numsInQ;
7:
8: cout << "Inserting {10, 5, -1, 20} into queue" << endl;
9: numsInQ.push (10);
10: numsInQ.push (5); // elements are inserted at the end
11: numsInQ.push (-1);
12: numsInQ.push (20);
13:
14: cout << "Queue contains " << numsInQ.size () << " elements" << endl;
15: cout << "Element at front: " << numsInQ.front() << endl;
16: cout << "Element at back: " << numsInQ.back () << endl;
17:
18: while (numsInQ.size () != 0)
19: {
20: cout << "Deleting element: " << numsInQ.front () << endl;
21: numsInQ.pop (); // removes element at front
22: }
23:
24: if (numsInQ.empty ())
25: cout << "The queue is now empty!" << endl;
26:
27: return 0;
28: }

输出:
Inserting {10, 5, -1, 20} into queue
Queue contains 4 elements
Element at front: 10
Element at back: 20
Deleting element: 10
Deleting element: 5
Deleting element: -1
Deleting element: 20
The queue is now empty!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值