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

  • 相关阅读:
    命令行打开无线网络设置
    WebView2 的使用记录
    QT-Mac:在Mac下实现QT程序的打包及公证
    QT:CEF实现js函数与C++函数的异步调用
    QT-Mac:QT Creator 中QT Versions显示无效的QT版本的解决办法
    QT-Mac: Undefined symbols for architecture x86_64
    全局键盘钩子失效与WebRTC的关系分析
    第十二届蓝桥杯决赛 大学 B 组 C/C++ 做题记录
    Luogu P2671 求和 | 数学奇偶性&前缀和
    2021铁三决赛 PWN cardstore | 格式化字符串 & ret2libc
  • 原文地址:https://www.cnblogs.com/elisha-blogs/p/3780721.html
Copyright © 2011-2022 走看看