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 ...
随机推荐
- java之File
1.文件创建.重命名.删除 code: package com.test; import java.io.File; import java.io.IOException; public class ...
- editplus批量删除html代码空行
在editplus替换菜单功能里,“查找”功能里输入: ^[ \t]*\n 替换为空,然后“全部替换”即可. 替换时,要选择“正则表达式”选项, 详细:http://www.dedecms8.com/ ...
- js基础例子
创建变量 var obj=value; 其中obj是变量名; value表示可能是数字,数组,函数之类的 多变量进行计算 var a1=200,b1='hello',c1=400; var d1=c1 ...
- java动态代理和cglib动态代理
动态代理应用广泛,Spring,Struts等框架很多功能是通过动态代理,或者进一步封装来实现的. 常见的动态代理模式实现有Java API提供的动态代理和第三方开源类库CGLIB动态代理. Java ...
- How to face setbacks
I’ve been in a bad mood since I started on the American Accent. I became even more upset when I adde ...
- 具体解说Android的图片下载框架UniversialImageLoader之磁盘缓存的扩展(二)
相对于第一篇来讲,这里讲的是磁盘缓存的延续.在这里我们主要是关注四个类.各自是DiskLruCache.LruDiskCache.StrictLineReader以及工具类Util. 接下来逐一的对它 ...
- Android 实时文件夹
实时文件夹是一种用来显示由某个ContentProvider提供的数据信息的桌面组件.要创建一个实时文件夹,必须要有两个方面的支持. 1,要定义一个用来创建实时文件夹的Activity. 2,所指定数 ...
- Hacker(22)----解除系统中的密码
Win7系统中,用户可以设置BIOS密码以及系统登录密码,这些密码都有各自的用途.但对黑客而言,完全可以采用不同的方式绕过这些密码.下面介绍黑客如如何接触这些密码. 一.解除BIOS密码 BIOS密码 ...
- <经验杂谈>查询表结构的SQL语句
在我们使用SQL数据库的过程中,经常会遇到查询表结构的情况,以下就是sql语句的写法: --查询非系统数据库 SELECT name FROM Master..SysDatabases 查询数据库下所 ...
- asp Eval()函数的一些使用总结
一.函数的原型: Eval(string s); s可以是变量,表达式,语句: 二.使用: 1.s为变量时,返回该变量的值,如:string s = "sss";Eval(s);/ ...