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  - 内存保留,增大容量

  • 相关阅读:
    HTML CSS3 手风琴菜单
    python代码- post请求图片上传
    python 一行代码生成 二维码
    Jenkins 中定时任务构建
    Jenkins 常用插件
    window系统,GitLab 远程与本地 SSH 认证连接
    Jmeter+Maven+Jenkins+Git接口自动化流程
    jmeter 响应中有中文乱码问题,解决
    Excel文件导入功能 用例设计思路
    Jmeter01 -mac下的安装
  • 原文地址:https://www.cnblogs.com/elisha-blogs/p/3780721.html
Copyright © 2011-2022 走看看