zoukankan      html  css  js  c++  java
  • c++ 12

    一、模板与继承
    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  - 内存保留,增大容量

  • 相关阅读:
    正则表达式--断言
    ie6兼容性处理
    git log 高级用法
    html-文件上传设置accept类型延时问题
    sublime text3 -- JavaScript Completions
    Git进行fork后如何与原仓库同步
    Redis的数据结构及应用场景
    PHP手册-函数参考-日期与时间相关扩展
    什么是缓存
    MySQL的连接方式、事务、性能优化
  • 原文地址:https://www.cnblogs.com/elisha-blogs/p/3780721.html
Copyright © 2011-2022 走看看