演示STL双端队列的push_back和push_front函数

本文对比了双端队列(deque)与向量在性能上的差异,并通过实例演示了如何使用deque的push_back和push_front函数。展示了在双端队列头部进行插入和删除操作的高效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

双端队列(deque)和向量没有多少区别。它们主要的区别在性能上:和向量相比,在双端队列起点上的插入和删除操作要快的多,其时间复杂度仅为常数。所有的STL类属方法都可用于双端队列。下面为push_back和push_front函数的列子:

1 #include <iostream>
2 #include <cassert>
3 #include <string>
4 #include <deque>
5 #include <algorithm> // for reverse
6  using namespace std;
7 template <typename Container>
8 Container make(const char s[])
9 {
10 return Container(&s[0], &s[strlen(s)]);
11 }
12
13 int main()
14 {
15 deque<char> deque1 =
16 make< deque<char> >("Bjarne Stroustrup"),
17 deque2;
18 deque<char>::iterator i;
19
20 cout << "Demonstrating deque push_back function" << endl;
21 for (i = deque1.begin(); i != deque1.end(); ++i)
22 deque2.push_back(*i);
23 assert (deque1 == deque2);
24
25 deque1 = make< deque<char> >("Bjarne Stroustrup");
26 deque2 = make< deque<char> >("");
27
28 cout << "Demonstrating deque push_front function" << endl;
29 for (i = deque1.begin(); i != deque1.end(); ++i)
30 deque2.push_front(*i);
31 assert (deque2 == make< deque<char> >("purtsuortS enrajB"));
32
33 // Show that deque2 is the reverse of deque1 by using
34 // STL generic reverse function to reverse deque1:
35 reverse(deque1.begin(), deque1.end());
36 assert (deque2 == deque1);
37 cout << " --- Ok." << endl;
38 return 0;
39 }

转载于:https://www.cnblogs.com/djcsch2001/archive/2011/06/07/djc.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值