一、模板与继承
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. osip及eXosip的编译方法

    osip及eXosip的编译方法 在最新版本的osip2.exosip2中不支持在VC6.0下编译osip.exosip协议栈的方法 说明: 1.以下文章中的osip版本为3.1.0 2.eXosip ...

  2. Java之Map

    Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象. Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象. code ...

  3. PHP设计模式笔记七:观察者模式 -- Rango韩老师 http://www.imooc.com/learn/236

    观察者模式 概述: 1.观察者模式(Observer),当一个对象状态发生改变时,依赖他的对象全部会收到通知,并自动更新 2.场景:一个事件发生后,要执行一连串更新操作,传统的编程方式,就是在事件的代 ...

  4. hdu4126Genghis Khan the ConquerorGenghis Khan the Conqueror(MST+树形DP)

    题目请戳这里 题目大意:给n个点,m条边,每条边权值c,现在要使这n个点连通.现在已知某条边要发生突变,再给q个三元组,每个三元组(a,b,c),(a,b)表示图中可能发生突变的边,该边一定是图中的边 ...

  5. 至Webserver构造svgz的文件需要http头,让你的浏览器中打开svgz档

    IE8以及IE8不支持以下浏览器SVG的.svgz它是svg压缩文件格公式,本文介绍的配置独立的浏览器,但浏览svgz请IE9+要么Firefox,Chrome和其他现代的浏览器打开. 让我们以正确显 ...

  6. Linux gdb调试入门

    没有使用过gdb调试过程序的觉得gdb是个很神奇的东东,如果你使用它调试一次保证你想忘记它都难,下面看看它的庐山真面目吧! GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具. ...

  7. 关于sed的应用

    公司让我做一个看一下在优化的程序和比原来的程序快多少,但是文件还在运行的服务器上,我需要把用到的文件复制到测试服务器上去.但是测试服务器上有的,目录不全,会导致scp出错.就发生了以下的故事. 首选我 ...

  8. 程序员的家!我终于拥有自己的blog了!!!

    经过多次提交诚恳的家园申请,终于得到了审核通过!今天就开始了我的.net成长之路!!!

  9. transition过渡的趣玩

    本例中将三张图(来自网络)进行堆叠,鼠标悬停触发.附有源代码

  10. iCIBA简单案例

    效果图: 代码: <!DOCTYPE html><html> <head> <meta charset="utf-8" /> < ...