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 ...
随机推荐
- C#中单问号,双问号的用法(转)
原文:http://hi.baidu.com/guodong828/blog/item/c78fc23f847314cb7d1e7193.html 单问号---用于给变量设初值的时候,给变量(int类 ...
- 【POJ2136】Vertical Histogram(简单模拟)
比较简单,按照样例模拟就好!~ #include <iostream> #include <cstdlib> #include <cstdio> #include ...
- InsertSort 插入排序
插入排序:将下一个插入已排好的序列中 自己觉得演示的号的一个文章地址 http://sjjg.js.zwu.edu.cn/SFXX/sf1/zjcr.html 下面是java的实现代码: //Inse ...
- Linux中输入命令按tab提示后会自动转义解决方案(xjl456852原创)
linux在命令行输入命令时,如果有$字符,按tab键时会自动在前面加入转义字符,反而达不到自己需要的效果. 例如: 在Centos7下,我要进入一个环境变量,并编辑一个文件: 比如我要进入$JAVA ...
- IOS uitableviewcell 向左滑动删除编辑等
主要实现这个方法就好了 -(NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActions ...
- cocos2d移植到安卓引入第三方so文件时候编译会删除解决方式
在游戏中对接支付的SDK的时候引入支付的so文件的时候在编译的时候总是被删除,后来经过查找资料自己整理出了一个解决方式 方案例如以下 在项目导入安卓中之后.在相应的jni目录中创建一个prebuilt ...
- 502 bad gateway是什么意思
通俗解释一下 1.什么是502 bad gateway 报错? 简单来说 502 是报错类型代码 bad gateway 错误的网关 2.产生错误的原因 连接超时 我们向server器发送请求 因为s ...
- Andriod Studio科学文章——4.常见问题解答有关编译
1.android未安装支持库 只有编译,下面的例子演示了提样: Could not find any version that matches com.android.support:appcomp ...
- 并行计算基础&编程模型与工具
在当前计算机应用中,对快速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如大型科学project计算与数值模拟: 数据密集(Da ...
- Oracle数据库的创建与验证
创建数据库,输入命令dbca创建数据库 会弹出创建数据库相应的对话框 单击下一步 选择创建一个数据库,并单击下一步 数据库模板选择一般目的的转换过程即可.单击下一步 全局数据库名称和SID名称,要和上 ...