STL
STL
vector 变长数组
倍增思想
系统为某一程序分配空间时,所需时间与空间大小无关,与申请次数有关。
因此vector的扩容是通过每次开辟一个长度为原数组两倍的数组,再将原数组内容拷贝到新数组。
vector支持比较运算,按字典序比较。
Pair
常用于储存一个事物的两种属性,比二元组结构体更方便
String
substr、c_str
Queue
queue没有clear函数,那如何实现清空?
1
2
queue<int> q;
q = queue<int>();
Priority_queue
1
2
priority_queue<int> p; // 默认大根堆
priority_queue<int, vector<int>, greater<int>> h // 小根堆
Stack
Deque
deque效率较低
Set、Multiset
lower_bound(x) 返回大于等于x的最小数的迭代器
upper_bound(x) 返回大于x的最小数的迭代器
Bitset
可以省八位空间,每一位表示一个布尔变量。
1
bitset<10000> s;
支持位运算、==、!=、[ ]
count( ) 返回有多少个1
any( ) 判断是否至少有一个1
none( ) 判断是否全为0
set( ) 所有位置成1
set(k, v) 将第k位变成v
reset( ) 所有位变成0
flip( ) 每一位翻转
flip(k) 翻转第k位
This post is licensed under CC BY 4.0 by the author.