c++算法学习笔记 (21) STL

1.vector:

        变长数组,倍增的思想

        size()返回元素个数

        empty()返回是否为空

        clear()清空

        front()/back()元素

        push_back()/pop_back()

        begin()/end()迭代器

        []

        支持比较运算

2.pair<int,int>:

        first:第一个元素

        second:第二个元素

        支持比较运算,先比较first再比较second

        make_pair()/{}初始化

3.string:字符串

        substr()截取字串

        c_str()把string转化成char*,用法strcpy(c,s.c_scr())

        size()/length()返回字符串长度

        empty()返回是否为空

        clear()清空

4.queue:队列

        push():队尾插入

        pop():队尾弹出

        front():返回队头

        back():返回队尾

        size()返回元素个数

        empty()返回是否为空

        (无clear)

5.priority_queue:优先队列,默认大根堆

        priority_queue(int,vector<int>)

        push():插入

        pop():弹出堆顶

        top():返回堆顶

        可以自定义比较规则

6.stack:栈

        push():栈顶插入

        pop():栈顶弹出

        top():返回栈顶元素

        size()返回元素个数

        empty()返回是否为空

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:不能有重复元素

        insert()插入

        find()查找

        count()查找某数的个数

        erase()删除所有指定的数/删除迭代器 O(k+logn)

        lower_bound()/upper_bound():返回>=x的最小的数的迭代器/返回>x的最小的数的迭代器

map/multimap:不能有重复元素

        insert()插入的数是pair

        find()查找

        erase()删除所有指定的数/删除迭代器

        []     O(logn)

        lower_bound()/upper_bound():返回>=x的最小的数的迭代器/返回>x的最小的数的迭代器

9.unordered_set,unordered_map,unordered_multiset,unordered_multimap:哈希表

        和8类似,增删改查的时间复杂度为O(1)

        不支持lower_bound()/upper_bound(),++,--

10.bitset:压位

8B->8bit=1B,节省8倍内存空间

bitset<10000> s;

~,&,|,^

>>,<<

==,!=

[]

count()返回有多少个1

any()判断是否至少有一个1

none()判断是否全为0

set()所有位置置1

set(k,v)第k位变成v

reset()所有位变成0

flip()等价于~

flip(k)把第k位取反

相关推荐

  1. c++算法学习笔记 (21) STL

    2024-04-07 17:36:04       39 阅读
  2. c++20】CPP-20-STL-Cookbook 学习笔记

    2024-04-07 17:36:04       40 阅读
  3. C++笔记打卡第23天(STL常用算法

    2024-04-07 17:36:04       26 阅读
  4. 基础算法学习笔记C++)

    2024-04-07 17:36:04       133 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 17:36:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 17:36:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 17:36:04       82 阅读
  4. Python语言-面向对象

    2024-04-07 17:36:04       91 阅读

热门阅读

  1. 搜索(DFS BFS)

    2024-04-07 17:36:04       33 阅读
  2. bash find: get directory of found file

    2024-04-07 17:36:04       33 阅读
  3. Electron 是一个流行的框架

    2024-04-07 17:36:04       36 阅读
  4. golang channel

    2024-04-07 17:36:04       37 阅读
  5. C++ 【填充书架】

    2024-04-07 17:36:04       48 阅读
  6. ChatGPT Excel 大师

    2024-04-07 17:36:04       30 阅读