c++ 13
一、向量
...
10.size/resize/clear/capacity/reserve
1)向量的大小可增可减,使向量大小改变的函数包括:resize/push_back/pop_back/clear/insert/erase。
2)向量的容量只增不减,只能通过reserve函数手动改变向量的容量。
3)向量的大小的增加可以引发容量的增加,但是容量的改变不会引起大小的变化。
4)通过resize()函数增加向量的大小,对于基本类型元素初始化为0,对于类类型元素用无参构造初始化。减少向量的大小,对于类类型元素会导致析构。
5)通过reserve()函数增加向量的容量,但是新增部分既不会初始化,也不会调用构造函数。
6)位于向量大小范围以外的元素,可以通过下标访问,但是其值是未定义的。
7)通过resize()/reserver()函数所做的改变都发生在向量的尾部。
11.insert/erase/::find/::sort
1)insert/erase通过迭代器参数表示插入/删除位置,而且这两个函数会改变容器的大小。
2)::find在通过两个迭代器器参数表示查找的范围,找到了就返回匹配元素的迭代器,找不到就返回查找范围的下限迭代器。
3)::sort有两个版本,其中两参版本用“<”做比较,三参版本用比较器函数对象做比较。
4)如果某种操作引起向量发生结构性的改变,之前所获得的迭代器将会失效,必须重新初始化。
12.类类型的向量
1)向量中的元素类可能需要支持:无参构造、拷贝构造、拷贝赋值、==、<。
2)借助比较器对象可以实现更为灵活的排序规则。
3)当一个容器被析构时,元素类型析构函数会被自动调用。
void foo (void) {
vector<Student> vs;
vs.push_back (...);
vs.push_back (...);
vs.push_back (...);
...
}
vector<Student>* pvs =
new vector<Student>;
pvs -> push_back (...);
pvs -> push_back (...);
pvs -> push_back (...);
...
delete pvs;
vector<Student*>* pvs =
new vector<Student*>;
pvs -> push_back (new Student (...));
pvs -> push_back (...);
pvs -> push_back (...);
...
for (vector<Student*>::iterator it =
pvs -> begin (); it != pvs.end ();
++it)
delete *it;
delete pvs;
练习:根据电影票房记录生成TOP10榜单。
输入文件:movies.dat
输出文件:top10.dat (票房前10位,按票房收入从高到低的顺序排列)
二、双端队列(deque)
1.向量所有的功能双端对列几乎都有,极少数不支持,如reserve等。
2.双端队列相对于向量增加在序列首部的压入和弹出接口:push_front/pop_front,而且其效率与在尾部做相应的动作一样高效。
3.为了维持两端的开放性,需要更复杂的动态内存管理,因此双端队列的空间和时间复杂度比向量略高。
三、列表(list)
1.sort - 排序
2.unique - 将连续出现相同元素唯一化
10 20 20 50 20 30
| unique ()
V
10 20 50 20 30
3.splice - 划分,将参数列表的一部分或全部划分到调用列表中。
参数列表:10 20 30 40 50
调用列表:0 100
| splice
V
参数列表:10 50
调用列表:0 20 30 40 100
4.merge - 合并,将有序的参数列表合并到有序的调用列表中,使调用列表保持有序。
c++ 13的更多相关文章
- TechEmpower 13轮测试中的ASP.NET Core性能测试
应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此.此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚.在选择框架时, ...
- .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍
Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...
- 转:ORA-15186: ASMLIB error function = [asm_open], error = [1], 2009-05-24 13:57:38
转:ORA-15186: ASMLIB error function = [asm_open], error = [1], 2009-05-24 13:57:38http://space.itpub. ...
- IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页
因为修改过管理员账号的密码后重启服务器导致IIS无法启动,出现已下异常 1.解决:"启动Windows Process Activation Service时,出现错误13:数据无效&quo ...
- CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection)
CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection) 2016-08-13 由于CSh ...
- ABP(现代ASP.NET样板开发框架)系列之13、ABP领域层——数据过滤器(Data filters)
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之13.ABP领域层——数据过滤器(Data filters) ABP是“ASP.NET Boilerplate P ...
- 推荐13款javascript模板引擎
javaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于j ...
- ASP.NET Core 中文文档 第三章 原理(13)管理应用程序状态
原文:Managing Application State 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:高嵩 在 ASP.NET Core 中,有多种途径可以对应用程序的状态进行 ...
- C#开发微信门户及应用(13)-使用地理位置扩展相关应用
本文继续上一篇<C#开发微信门户及应用(12)-使用语音处理>,继续介绍微信的相关应用.我们知道,地理位置信息可以用来做很多相关的应用,除了我们可以知道用户所在的位置,还可以关联出一些地理 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
随机推荐
- LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径 ...
- 【开源】Hawk-数据抓取工具:简明教程
1.软件介绍 HAWK是一种数据采集和清洗工具,依据GPL协议开源,能够灵活,有效地采集来自网页,数据库,文件, 并通过可视化地拖拽, 快速地进行生成,过滤,转换等操作.其功能最适合的领域,是爬虫和数 ...
- 潘石屹的SOHO小报猝死
东莞时报多媒体数字报刊平台 潘石屹的SOHO小报猝死
- 使用kthread内核线程的内核模块
这里使用了msleep(50); printk 开启其实挺大的,当我使用msleep(10);机器直接卡死了: 另外ISERR不能判断结构体的,只能判断 空指针 #cat hello.c #inclu ...
- 将Maven项目转换成Eclipse支持的Java项目
当我们通过模版(比如最简单的maven-archetype-quikstart插件)生成了一个maven的项目结构时,如何将它转换成eclipse支持的java project呢? 1. 定位到mav ...
- .NET 面试题(2)
61.Application .Cookie和 Session 两种会话有什么不同? 1.Application 储存在服务端,没有时间限制,服务器关闭即销毁(前提是自己没写销毁方法) 2.Sessi ...
- PHP设计模式笔记四:适配器模式 -- Rango韩老师 http://www.imooc.com/learn/236
适配器模式 1.适配器模式,可以将截然不同的函数接口封装成统一的API 2.实际应用举例,PHP的数据库操作有mysql.mysqli.pdo三种,可以用适配器模式统一成一致,类似的场景还有cache ...
- hdu 4756 Install Air Conditioning
非正规做法,一个一个的暴,减一下枝,还得采用sort,qsort居然过不了…… #include <cstdio> #include <cmath> #include < ...
- spark1.1.0学习路线
经过一段时间授课,积累下不少的spark知识.想逐步汇总成资料,分享给小伙伴们.对于想视频学习的小伙伴,能够訪问炼数成金站点的<spark大数据平台>课程.每周的课程是原理加实 ...
- [RxJS] Resubscribing to a Stream with Repeat
When you complete a stream, there’s no way to restart it, you must resubscribe. This lesson shows ho ...