当前位置: 首页 > news >正文

郑州网站建设天强科技/企业做网上推广

郑州网站建设天强科技,企业做网上推广,WordPress表白墙主题,网站经营性备案多少钱C 标准模板库 STL 容器适配器 容器数据结构时间复杂度顺序性重复性stackdeque / list顶部插入、顶部删除 O(1)无序可重复queuedeque / list尾部插入、头部删除 O(1)无序可重复priority_queuevector max-heap插入、删除 O(log2n)有序可重复 ​ 容器适配器和容器的主要差别在于…

C++ 标准模板库 STL 容器适配器

容器数据结构时间复杂度顺序性重复性
stackdeque / list顶部插入、顶部删除 O(1)无序可重复
queuedeque / list尾部插入、头部删除 O(1)无序可重复
priority_queuevector + max-heap插入、删除 O(log2n)有序可重复

​ 容器适配器和容器的主要差别在于,容器适配器没有迭代器,所以STL中的算法无法直接在容器适配器中使用。

栈 stack

stack 类模板定义中有2个模板参数如下:

template <typename T, typename Container = deque<T> >
class stack { …… };

​ 两个参数分别表示栈中元素类型和实现栈的数据结构Container,栈可用 vector, list, deque 来实现,缺省情况下用deque实现;一般情况下推荐使用deque实现,因为用 vector 实现存在是容量大小有限制和扩容耗时的缺陷;而使用list实现则会导致整体性能较差。

​ stack 是后进先出的数据结构,只能插入,删除,访问栈顶的元素。所以,stack上主要可以进行如下操作:

  • push:插入元素
  • pop:弹出元素
  • top:返回栈顶元素的引用
  • empty:判断容器适配器是否为空
  • size:回适配器中元素个数

队列 queue

queuestack 基本相似,其类模板定义中也有相同的2个模板参数如下:

template <typename T, typename Container = deque<T> >
class queue { …… };

​ 两个参数分别表示栈中元素类型和实现栈的数据结构Container,栈可用 vector, list, deque 来实现,缺省情况下用deque实现;一般情况下推荐使用deque实现,因为用 vector 实现存在是容量大小有限制和扩容耗时的缺陷;而使用list实现则会导致整体性能较差。

​ queue 是先进先出的数据结构,可以在队头和队尾操作元素。所以,queue 上主要可以进行如下操作:

  • push:从队尾插入元素
  • pop:弹出队头元素
  • front:返回队头元素的引用
  • back:返回队尾元素的引用
  • empty:判断容器适配器是否为空
  • size:回适配器中元素个数

优先队列 priority_queue

priority_queue 类模板定义中有3个模板参数如下:

template <typename T, typename Container = vector<T>, typename Compare = less<T> >
class priority_queue { …… };

​ priority_queue 通常使用 vector 实现,其内部元素处理规则通常用堆排序(heap)技术实现,保证最大的元素总是在最前面。即执行pop操作时,删除的是最大的元素;执行top操作时,返回的是最大元素的常引用。默认的元素比较器是使用<运算符进行比较的 less<T>

​ 和 queue 相似 priority_queue 可以进行如下操作:

  • push:从队尾插入元素
  • pop:弹出队头元素
  • top:返回队头元素的引用
  • empty:判断容器适配器是否为空
  • size:回适配器中元素个数

​ 一个 priority_queue 使用示例如下:

#include <queue>
#include <iostream>
using namespace std;
int main()
{priority_queue<double> pq1;pq1.push(3.2); pq1.push(9.8); pq1.push(9.8); pq1.push(5.4);while( !pq1.empty() ) {cout << pq1.top() << " ";pq1.pop();} cout << endl;priority_queue<double,vector<double>,greater<double> > pq2;pq2.push(3.2); pq2.push(9.8); pq2.push(9.8); pq2.push(5.4);while( !pq2.empty() ) {cout << pq2.top() << " ";pq2.pop();}return 0;
}

参考资料

程序设计与算法(三)C++面向对象程序设计

http://www.lbrq.cn/news/1590211.html

相关文章:

  • 十九冶成都建设网站/网站维护是什么意思
  • 定制网站的优势/各大网站
  • 国外网站推广/友情链接查询友情链接检测
  • 专做定制型网站/足球最新世界排名表
  • 政府网站建设 会议/网络营销顾问招聘
  • 做哪个行业的网站好/一键建站
  • 男女插孔做暖暖的试看网站大全/网页开发流程
  • 做网站学什么语言好/百度竞价关键词优化
  • 合肥建设网站资质办理/市场营销推广方案怎么做
  • 那个网站可以查询美做空基金/太原网站制作推广
  • 如何建立国外网站/china东莞seo
  • 下列关于wap手机网站/怎么宣传自己的产品
  • 什么网站可以做兼职 知乎/电商网站推广方案
  • 设计网站视频教程/seo兼职外包
  • 网站建站的标准/人工智能培训班
  • 网站首页三张海报做多大/地推接单平台网
  • wordpress阿里云推送/seo网站推广软件
  • iphone网站/如何建立自己的网站平台
  • 是一个网站或站点的第一个网页/app开发自学
  • 专业烟台房产网站建设/广州优化疫情防控举措
  • 2023年文职招聘岗位表/北京seo网络推广
  • 济南靠谱做网站公司/佛山百度推广公司
  • 网站怎么做百度快照/中山百度推广公司
  • 手表品牌/安徽seo团队
  • 重庆有那些制作网站的公司/网站建设技术外包
  • 贵阳网站制作免费/竞价推广哪里开户
  • 做资源网站怎么不封/快速提高排名
  • 网页界面设计流程/神马搜索seo优化排名
  • 免费设计真的免费/seo日常工作都做什么的
  • 无锡做网站公司/怎么做线上销售
  • RAGAS:检索增强生成系统的无参考评估框架与技术解析
  • 深入理解String类:揭秘Java字符串常量池的优化机制
  • sigfillset 函数详解
  • 翻译模型(TM):基于短语的统计翻译模型(PBSMT)的构建
  • 探究 ASGI 的技术优势:现代 Web 开发的新方向
  • Python Socket 脚本深度解析与开发指南