演示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 }
相关文章
|
数据库 Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求处理
【2月更文挑战第30天】 在移动应用开发领域,网络请求的处理是影响用户体验的关键环节。针对Android平台,利用Kotlin协程能够极大提升异步任务处理的效率和简洁性。本文将探讨如何通过Kotlin协程优化Android应用中的网络请求处理流程,包括协程的基本概念、网络请求的异步执行以及错误处理等方面,旨在帮助开发者构建更加流畅和响应迅速的Android应用。
|
10月前
|
SQL IDE 数据挖掘
这可能是交互性最强的数据分析编程语言
在数据分析领域,Excel 和 BI 工具适合处理简单任务,但面对复杂分析(如跨行数据、滑动窗口等)时显得力不从心。编程语言虽有强计算能力,但交互性差,难以实时反馈结果。SPL(Structured Process Language)则结合了两者的优点,采用网格式编程,支持实时查看中间结果,并具备强大的有序和集合运算能力,使复杂任务变得简单直观。SPL 让数据分析师既能享受 Excel 的交互性,又能利用编程的强大计算能力,解决了强计算与交互性的两难问题。
|
SQL 前端开发 Python
基于python-django的neo4j人民的名义关系图谱查询系统
基于python-django的neo4j人民的名义关系图谱查询系统
202 0
|
算法
路径规划算法 - 求解最短路径 - Dijkstra(迪杰斯特拉)算法
路径规划算法 - 求解最短路径 - Dijkstra(迪杰斯特拉)算法
722 0
|
机器学习/深度学习 自然语言处理 算法
m基于深度学习的OFDM+QPSK链路信道估计和均衡算法误码率matlab仿真,对比LS,MMSE及LMMSE传统算法
**摘要:** 升级版MATLAB仿真对比了深度学习与LS、MMSE、LMMSE的OFDM信道估计算法,新增自动样本生成、复杂度分析及抗频偏性能评估。深度学习在无线通信中,尤其在OFDM的信道估计问题上展现潜力,解决了传统方法的局限。程序涉及信道估计器设计,深度学习模型通过学习导频信息估计信道响应,适应频域变化。核心代码展示了信号处理流程,包括编码、调制、信道模拟、降噪、信道估计和解调。
434 8
|
SQL 运维 监控
MSSQL性能调优实战:索引策略优化、SQL查询重写与智能锁管理
在Microsoft SQL Server(MSSQL)的运维中,性能调优是确保数据库高效运行、满足业务需求的关键环节
|
Java 数据库 索引
【Java】已解决Spring框架中的org.springframework.dao.DuplicateKeyException异常
【Java】已解决Spring框架中的org.springframework.dao.DuplicateKeyException异常
577 0
|
存储 自然语言处理 NoSQL
知识图谱数据处理流程是什么
知识图谱是一种以实体、关系及其属性为基本单位,通过知识表示、存储和推理,对现实世界中的各种实体、属性进行关系抽取、语义匹配和知识推理的技术。知识图谱的数据处理流程主要包括数据获取与预处理、图谱构建、知识推理等几个步骤。
|
数据挖掘 数据安全/隐私保护 开发者
MATLAB P文件解密工具让你轻松破解p文件,解析源代码!
这篇文章将为你推荐一个MATLAB P文件解密工具,可以将p文件解密成m文件,反编译p代码为m代码,并还原p文件或m文件的源代码。
2716 0
|
机器学习/深度学习 算法
m基于深度学习的OFDM信道估计和均衡算法误码率matlab仿真,对比了LS,MMSE以及LMMSE等传统的信道估计算法
m基于深度学习的OFDM信道估计和均衡算法误码率matlab仿真,对比了LS,MMSE以及LMMSE等传统的信道估计算法
628 0
m基于深度学习的OFDM信道估计和均衡算法误码率matlab仿真,对比了LS,MMSE以及LMMSE等传统的信道估计算法