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

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

双端队列(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 }
相关文章
|
容器
push_back还是emplace_back?
emplace_back() 是 C++11 之后,vector容器中添加的新方法,和 push_back()一样,都是在容器末尾添加一个新的元素,相对于push_back函数,它减少了一次类的构造。不同的是emplace_back() 在效率上相比较于 push_back() 有了一定的提升。
|
7月前
|
编译器 程序员 C++
【C/C++ 容器操作】C++高效编程:掌握emplace_back与push_back的使用和机制
【C/C++ 容器操作】C++高效编程:掌握emplace_back与push_back的使用和机制
195 0
|
7月前
|
存储 C++ 容器
STL--stack、queue实现
STL--stack、queue实现
|
7月前
|
编译器 C++ 容器
STL常用之vector,list,stack,queue,deque总结与对比
STL常用之vector,list,stack,queue,deque总结与对比
|
C++ 容器
STL中stack和queue的使用以及模拟实现
STL中stack和queue的使用以及模拟实现
63 0
|
设计模式 C++ 容器
C++【STL】之stack和queue学习
C++ STL stack和queue常用接口和模拟实现详细讲解,干货满满!
113 0
C++【STL】之stack和queue学习
push,pop指令
push,pop指令
277 0
|
存储 算法 C++
STL——list、stack与queue
STL——list、stack与queue
|
存储 C++ 容器
【C++】STL——stack&queue模拟实现
【C++】STL——stack&queue模拟实现
133 0
【C++】STL——stack&queue模拟实现
|
C++ 容器
【C++】STL——stack&queue的基本使用
【C++】STL——stack&queue的基本使用
126 0
【C++】STL——stack&queue的基本使用