C/C++教程

基础算法学习---c++的stl库们

本文主要是介绍基础算法学习---c++的stl库们,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

vector 变长数组

    size()          返回元素个数
    empty()         检查是否为空
    clear()         清空
    front()/back()  返回头尾元素 
    begin()/end()   迭代器

pair<a,b>           一个有a类型元素和b类型元素的结构体
    first           访问第一个元素
    second          访问第二个元素

string              字符串
    size()/length()
    substr(a,b)     从a开始,长度为b
    c_str()         返回首地址
    clear()         清空

queue               队列
    size()          返回大小
    empty()         检查是否空
    push()          对尾插入
    pop()           对头弹出
    front()/back()  查看

priority_queue 优先队列

    priority_queue<int> heap;                           默认为大根堆
    priority_queue<int,vector<int>,greater<int>> heap;  小根堆,或者直接插入负数

    push()          插入
    top()           返回堆顶
    pop()           弹出堆顶

stack 栈

    size()          大小
    empty()         是否空
    push()          尾部插入
    pop()           尾部弹出
    top()           返回尾部

deque 双端队列,缺点是很慢

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

set,multiset,map,multimap

    size()
    empty()
    clear()
    begin()/end()

    set/multiset     set没有重复元素,multiset有

        insert()        插入一个数
        find()          返回目标地址,如果不存在则返回end()
        count()         返回一个数的个数
        erase()
            (1) 输入一个数x,删除所有x
            (2) 输入一个迭代器,删除这个迭代器 
        lower_bound()/upper_bound()
            lower_bound(x)  返回大于等于x的最小数
            upper_bound(x)  返回大于x的最小数

    map/multimap     map没有重复元素,multiamp有

        insert()
        erase()
        find()
        lower_bound()/upper_bound()
            lower_bound(x)  返回大于等于x的最小数
            upper_bound(x)  返回大于x的最小数

unordered_set,unodered_multiset,unodered_map,unodered_multimap 哈希表

    和上面类似,时间复杂度为O(1),无序
    不支持lower_bound()/upper_bound(),迭代器++

bitset 压位

    bitset<a>       a为数量
    
    支持位运算
    []
    
    count()         返回有多少个1
    any()           判断是否至少有一个1
    none()          判断是否全为0

    set()           变所有位置为1
    set(k,v)        将第k变成v
    reset()         把所有位变成0
    flip()          取反
    flip(k)         第k位取反
这篇关于基础算法学习---c++的stl库们的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!