zoukankan      html  css  js  c++  java
  • ACwing(基础)--- C++STL库

    vector

    变长数组,倍增的思想

        size() 返回元素个数
        empty() 返回是否为空
        clear() 清空
        front()/back()
        push_back()/pop_back()
        begin()/end()
        []
        支持比较运算,按字典序
    

    pair<int,int>

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

    string 字符串

        substr(起始位置,截取长度)
        c_str() 字符串转换字符数组
        empty()
        clear()
    

    queue 队列

        size()
        empty()
        push() 向队尾插入一个元素
        pop() 弹出队头元素
        front() 返回队头元素
        back() 返回队尾元素
        因为queue没有clear() 所以可以这样清空:q = queue<int>();
    

    priority_queue 优先队列,默认是大根堆

        size()
        empty()
        push() 插入一个元素
        top() 返回堆顶元素
        pop() 弹出堆顶元素
        定义成小根堆的方式:priority_queue<int,vector<int>,greater<int>>q;
    

    stack 栈

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

    deque 双端队列

        size()
        empty()
        clear()
        front()/back()
        push_back()/pop_back()
        push_front()/pop_front()
        begin()/end()
        []
    

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

        size()
        empty()
        clear()
        begin()/end() ++,-- 返回前驱和后继,时间复杂度 O(logn)
        
        set/multiset
            insert() 插入一个元素
            find() 查找一个元素
            count() 返回某一个元素的个数
            erase()
                (1) 输入时一个元素x,删除所有x O(k + logn)
                (2) 输入一个迭代器,删除这个迭代器
            lower_bound()/upper_bound()
                lower_bound(x) 返回大于等于x的最小的数的迭代器
                upper_bound(x) 返回大于x的最小的数的迭代器
        map/multimap
            insert() 插入的数是一个pair
            erase() 输入的参数是pair或者迭代器
            find() 
            [] 时间复杂度是O(logn)
            lower_bound()/upper_bound()
    

    unordered_set,unordered_map,unodered_multiset,unordered_multimap, 基于哈希表

    跟上面类似
        优点:增删改查时间复杂度为O(1)
        缺点:不支持lower_bound()/upper_bound() 、 迭代器的++,--
    

    bitset 压位

        bitset<10000> s;
        ~,&,|,^
        >>,<<
        ==,!=
        []
        
        count() 返回有多少个1
        any() 判断是否至少有一个1
        none() 判断是否全为0
        set() 把所有位变成1
        set(k,v) 将第k位变成v
        reset() 把所有位变成0
        flip() 等价于~
        flip() 把第k位取反
    
  • 相关阅读:
    面试问题总结
    2016后半年读书系统
    java基础知识
    自动化测试的误区
    软件测试的艺术
    QTP
    软件测试的艺术读书笔记
    Jquery中$(document).ready()
    Python爬取糗事百科示例代码
    【转载】气象数据相关资源
  • 原文地址:https://www.cnblogs.com/bingers/p/13507790.html
Copyright © 2011-2022 走看看