C++ 标准模板库STL 学习笔记

C++ 标准模板库STL 学习笔记,第1张

〇、通用方法

size() 返回容器的长度(元素个数)

empty() 返回容器是否为空

一、变长数组 vector

clear() 清空

front() / back() 返回第一个/最后一个元素

push_back() / pop_back() 往最后插入/d出一个元素

begin() / end() 返回迭代器,分别代表index=0(第零个数)和index=size(最后一个数的后一个数)的位置 

erase() 

二、pair

first 取第一个元素

second 取第二个元素

三、字符串 string

clear() 清空

substr() 获取子串,第一个参数:子串的起始位置,第二个参数:子串的长度

c_str() 返回对应字符数组的头指针(使用 printf("%s") 输出时使用)

四、队列 queue

push() 往队尾插入元素

front() / back() 返回队首/队尾元素

pop() 将队头元素d出

五、优先队列 / 堆 priority_queue

默认为大根堆

push() 插入元素

top() 返回堆顶元素

pop() 将堆顶元素d出

六、栈 stack

push() 往栈顶插入元素

top() 返回栈顶元素

pop() 将栈顶元素d出

七、双端队列 deque

clear() 清空

front() / back() 返回队首/队尾元素

push_back() / pop_back() 往队尾插入/d出一个元素

push_front() / pop_front() 往队首插入/d出一个元素

begin() / end() 返回迭代器

八、set multiset

基于平衡二叉树来实现(红黑树),动态维护一个有序序列

clear() 清空

insert() 插入一个元素

find() 查找一个数,返回其位置的迭代器,该数不存在时返回end()迭代器

count() 返回某一个数的个数

erase() 删除元素,输入是数字的情况,删除所有等于这个数字的节点(时间复杂度 k+logn),输入是迭代器的情况,删除迭代器位置的节点

lower_bound() 返回大于等于输入数的最小数的位置的迭代器,不存在时返回end()迭代器

upper_bound() 返回小于等于输入数的最大数的位置的迭代器,不存在时返回end()迭代器

九、map multimap

clear()

insert() (插入的是pair)

find()

erase()

十、unordered_set unordered_map unordered_multiset unordered_multimap

基于哈希表实现,速度更快,但内部无序

不支持 lower_bound() / upper_bound()

十一、bitset

定义:bitset x;  N为元素个数

~  &  |  ^  <<  >>  ==  !=

[] 获取某一位上的值

count() 返回1的个数

any() 是否至少有一个1

none() 是否全为0

set() 将所有位置置成1

set(k,v) 将第k位置成v

reset() 将所有位置置成0

flip() 取反~

flip(k) 将第k位取反 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/716937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存