c++常用STL容器(算法)

STL

算法常用容器
  1. vector,变长数组,倍增的思想
  2. string,字符串,substr(),c_str()
  3. queue,队列,push(), front(), pop()
  4. priority_queue,优先队列,push(), top(), pop()
  5. stack,栈, push(), top(), pop()
  6. deque,双端队列
  7. set, map, multiset, multimap, 基于平衡二叉树(红黑树),动态维护有序序列
  8. unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表
  9. bitset, 压位
接下来详细介绍一下每种容器算法常用函数
  1. vector:
    size() 返回元素个数
    empty() 返回是否为空
    clear() 清空
    fornt()/back()
    push_back()/pop_back()
    begin()/end()

    ​ 支持比较运算,按字典序

  2. pair<int,int>
    first, 第一个元素
    second, 第二个元素
    支持比较运算,以first为第一关键字,以second为第二关键字(字典序)

  3. string,字符串,sub_str, c_str()
    size()
    empty()
    clear()

  4. queue,队列
    size()
    empty()
    push(),向队尾插入一个元素
    front(),返回对头元素
    back(),返回队尾元素
    pop(),弹出对头元素

  5. priority_queue,优先队列,默认是大根堆。
    定义大根堆:priority_queue< int > A;
    定义小根堆:priority_queue<int,vector< int >,greater< int >> A;

    push(),插入一个元素
    top(),返回堆顶元素

    pop(),弹出堆顶元素

  6. stack(),栈
    size()
    empty()
    push(),向栈顶插入一个元素
    top(),返回栈顶元素
    pop(),弹出栈顶元素

  7. deque,双端队列(非常牛逼,但是速度非常慢,一般不用)
    size()
    empty()
    clear()
    front()
    back()
    push_back()/pop_back()

    push_front/pop_front()
    begin()/end()

  8. set, map, multiset, multimap, 基于平衡二叉树(红黑树),动态维护有序序列

    size()
    empty()
    clear()
    begin()/end() ++,–,返回前驱和后继

    set/multiset ==> set内部没有重复元素,插入重复元素会被忽略这个操作。/multiset内部可以有重复的元素。
    insert() 插入一个数
    find() 查找一个数
    count() 返回某一个数的个数
    erase()
    (1)、输入一个数x,删除所有x
    (2)、输入一个迭代器,删除这个迭代器
    lower_bound()/upper_bound()
    lower_bound(x) 返回大于等于x的最小的数的迭代器
    upper_bound(x) 返回大于x的最小的数的迭代器
    map/multimap
    insert() 插入的数是一个pair
    erase() 输入的数是pair或者迭代器
    find()
    []
    lower_bound()/upper_bound()

  9. unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表
    和上面类似
    不支持 lower_bound()/upper_bound(),迭代器的++、–

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值