c++ STL 常用方法

c++ STL 常用方法,第1张

vector 变长数组,倍增的思想

size() 返回元素个数

empty() 返回是否为空

clear() 清空

front()/back()

push_back()/pop back()

begin()/end() 支持比较运算,按字典序

pair

first 第一个元素

second 第二个元素

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

string,字符串,substr(),c_str()

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

empty()

clear()

queue,队列

size()

empty()

push() 向队尾插入一个元素

front() 返回队头元素

back() 返回队尾元素

pop() d出队头元素

priority queue,优先队列,默认是大根堆

push() 插入一个元素

top() 返回堆顶元素

pop() d出堆顶元素

定义成小根堆的方式:

priority_queue,greaterq;

stack,栈

size()

empty()

push() 向栈顶插入一个元素

top() 返回栈顶元素

pop() d出栈顶元素

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() ++,-- 返回前驱和后继,时间复杂度0(1ogn)

set/multiset

insert()    插入一个数

find() 查找一个数

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

erase()

(1)输入是一个数×,删除所有x o(k+logn)

(2)输入一个迭代器,删除这个迭代器

lower_bound()/upper_bound()

lower bound(x) 返回大于等于×的最小的数的迭代器

upper_bound(x) 返回大于x的最小的数的迭代器

map/multimap

insert() 插入的数是一个pair

erase() 输入的参数是pair或者迭代器

find()

lower bound()/upper_bound()

unordered_set,unordered_map,unordered multiset,unordered multimap,

和上面类似,增删改查的时间复杂度是0(1)

不支持lower bound()/upper bound(),迭代器的++,--

bitset,压位

bitset<10000>s;

~,&,|,^

>>,<<

==,!=

[]

count() 返回有多少个1

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

none() 判断是否全为0

set() 把所有位置成1

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

reset() 把所有位变成0

flip()等价于~

flip(k) 把第k位取反

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存