一、模板与继承
1.从模板类派生模板子类
2.为模板子类提供基类

二、容器和迭代器
以链表为例。

三、STL概览
1.十大容器
1)向量(vector):连续内存,后端压弹,插删低效
2)列表(list):链式存储,前后压弹,插删高效
3)双端队列(deque):连续内存,前后压弹,插删折中
以上三种合称线性容器。
4)堆栈(stack):后进先出
5)队列(queue):先进先出
6)优先队列(priority_queue):优者先出
以上三种合称适配器容器。
7)映射(map):以二叉树的形式存放key-value对,key升序且唯一。
8)集合(set):没有value的映射。
9)多重映射(multimap):key可不唯一的映射。
10)多重集合(multiset):没有value的多重映射。
以上四种合称关联容器。
2.泛型算法
3.实用工具
typedef basic_string<char> string;
swap
for_each
...

四、向量(vector)
1.基本特点
1)连续内存、下标访问和随机迭代。
2)动态内存管理。
3)通过预分配内存避免动态内存管理的开销。
4)也支持在任意位置的插入和删除,虽然效率不高。
5)元素都是副本,需要支持深拷贝。
2.定义变量
#include <vector>
using namespace std;
vector<int> vi;
3.迭代器
vector<int>::iterator it = vi.begin ();
vector<int>::const_iterator it = vi.begin ();
4.push_back/pop_back/front/back
5.下标运算符[]
vi[0] = 1;
cout << vi[10] << endl;
6.size - 获取元素个数
7.通过单参构造预分配元素空间
vector<int> vn (10);
预分配的元素如果是简单类型,用0初始化,如果是类类型的,用无参构造初始化。
8.通过双参构造在预分配元素空间的同时,根据第二个构造实参做初始化
vector<int> vn (10, 5);
9.通过另一个容器的起止迭代器初始化。
10.size/resize/clear/capacity/reserve
size     - 获取元素数
resize   - 改变元素数,可增可减
clear    - 清空
capacity - 获取容量(最大元素数)
reserve  - 内存保留,增大容量

c++ 12的更多相关文章

  1. python 各模块

    01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...

  2. Python Standard Library

    Python Standard Library "We'd like to pretend that 'Fredrik' is a role, but even hundreds of vo ...

  3. 在mybatis中写sql语句的一些体会

    本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...

  4. AndroidStudio — Error:Failed to resolve: junit:junit:4.12错误解决

    原博客:http://blog.csdn.net/u013443865/article/details/50243193 最近使用AndroidStudio出现以下问题: 解决:打开app下的buil ...

  5. 读过MBA的CEO更自私?《哈佛商业评论》2016年第12期。4星

    老牌管理杂志.每期都值得精度.本期我还是给4星. 以下是本书中的一些内容的摘抄: 1:他们发现在Airbnb上,如果客人姓名听起来像黑人,那么比名字像白人的客人的接受率会低16%.#45 2:对立组织 ...

  6. 12个小技巧,让你高效使用Eclipse

    集成开发环境(IDE)让应用开发更加容易.它们强调语法,让你知道是否你存在编译错误,在众多的其他事情中允许你单步调试代码.像所有的IDE一 样,Eclipse也有快捷键和小工具,这些会让您感觉轻松许多 ...

  7. 第12章 Linux系统管理

    1. 进程管理 1.1 进程查看 (1)进程简介 进程是正在执行的一个程序或命令(如ls命令也是一个进程),每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. (2)进程管理的作用 ...

  8. Jexus Web Server 完全傻瓜化图文配置教程(基于Ubuntu 12.04.3 64位)[内含Hyper-v 2012虚拟机镜像下载地址]

    1. 前言 近日有感许多新朋友想尝试使用Jexus,不过绝大多数都困惑徘徊在Linux如何安装啊,如何编译Mono啊,如何配置Jexus啊...等等基础问题,于是昨日向宇内流云兄提议,不如搞几个配置好 ...

  9. CSharpGL(12)用T4模板生成CSSL及其renderer代码

    CSharpGL(12)用T4模板生成CSSL及其renderer代码 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立 ...

  10. ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之12.ABP领域层——工作单元(Unit Of work) ABP是“ASP.NET Boilerplate Pr ...

随机推荐

  1. .net中除去IList中的多余项

    IList<ActionInfo> tempList = new List<ActionInfo>(); IList<ActionInfo> tempActionL ...

  2. hdu4405:概率dp

    题意: 总共有n+1个格子:0-n 初始情况下在 0号格子 每次通过掷骰子确定前进的格子数 此外 还有一些传送门可以瞬间从 u 点传送到 v 点(必须被传送) 求走到(或超过)n点总共需要掷多少次骰子 ...

  3. <转载>Win32控制台工程中创建窗口

    有的时候,用控制台同步输出调试信息.程序状态量,比出Log.弹出报错对话框等方法来得有效.那么如何做到呢?如下: 简而言之,用GetModuleHandle()函数获得当前程序实例句柄,其它地方与常见 ...

  4. [iOS] Create TableView & customize UITableViewCell

    1. First artical, notice the last thing - Connecting the DataSource and Delegate: http://www.appcoda ...

  5. Android 读取手机某个文件夹目录及子文件夹中所有的txt文件

    1. activity_main.xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andro ...

  6. maven-Android项目环境搭建

    参考:http://blog.csdn.net/earbao/article/details/40741051 android maven环境搭建: 1.Maven的版本要求3.1.1 2.设置AND ...

  7. UVa 10701 - Pre, in and post

    题目:已知树的前根序,中根序遍历转化成后根序遍历. 分析:递归,DS.依据定义递归求解就可以. 前根序:根,左子树,右子树: 中根序:左子树,根,右子树: 每次,找到根.左子树.右子树,然后分别递归左 ...

  8. Kerberos-KDC

    Kerberos提供一种较好的解决方案,它是由MIT发明的,Kerberos建立了一个安全的.可信任的密钥分发中心(KDC, Key Distribution Center).Kerberos是一种认 ...

  9. 执行curl -sSL 提示curl: (35) SSL connect error

    今天,添加容器节点报错,执行如下 curl -sSL https://shipyard-project.com/deploy| ACTION=node DISCOVERY=etcd://192.168 ...

  10. extern C的作用详解

    extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码.加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C+ ...