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 ...
随机推荐
- python标准库之字符编码详解
codesc官方地址:https://docs.python.org/2/library/codecs.html 相关帮助:http://www.cnblogs.com/huxi/archive/20 ...
- c语言学习之结构篇代码演示样例-输入n个同学的姓名,数学英语成绩,依照平均分从低到高排序并输出
#include<stdio.h> void main(){ const int count = 5;//定义数量 struct student{ char name[80]; float ...
- [Redux] Extracting Presentational Components -- Footer, FilterLink
Code to be refactored: let nextTodoId = 0; class TodoApp extends Component { render() { const { todo ...
- LINUX进程上锁查看方法
jps -l 获取进程列表 jstack -l 8672 查看详细信息 查找启动任务的class 查看状态
- transition过渡的趣玩
本例中将三张图(来自网络)进行堆叠,鼠标悬停触发.附有源代码
- document 例子
<!DOCTYPE html> <html> <head> <title></title> <script type="te ...
- SQLSERVER内核架构剖析 (转)
我们做管理软件的,主要核心就在数据存储管理上.所以数据库设计是我们的重中之重.为了让我们的管理软件能够稳定.可扩展.性能优秀.可跟踪排错. 可升级部署.可插件运行,我们往往研发自己的管理软件开发平台. ...
- VS2013以管理员身份使用
Win8系统: 1.将C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe改为以管理员身份运行. 2.将 ...
- visifire 图表双坐标轴 silverlight
public void CreateChart(Grid oGrid, ObservableCollection<ListItem> lBaseOilBar) { ...
- Codeforces Round #350 (Div. 2)A,B,C,D1
A. Holidays time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...