摘要:
reverse 翻转 unique 去重 :返回去重之后的尾迭代器(末尾元素的下一个位置)。利用迭代器的减法可计算出去重后的元素个数 m。 random_shuffle 随机打乱 next_permutation 下一个排列 / pre_permutation sort 快速排序 lower_bou 阅读全文
摘要:
n 位 bitset 执行依次位运算的复杂度可视为 n / 32,效率较高。 位运算操作符 ~s, &, |, ^, >>, <<, ==, != [ ] 操作符 count :返回有多少位为 1。 any / none 若 s 所有位都为 0,则 s.any() 返回 false,s.none() 阅读全文
摘要:
map 容器是一个键值对 key-value 的映射。是一颗以 key 为关键码的红黑树。 size / empty / clear / begin / end “ 双向访问迭代器 ”。对 map 的迭代器解除引用得到二元组 pair<key_type, value_type> insert / e 阅读全文
摘要:
主要包括 set 和 multiset 两个容器,分别是 “ 有序集合 ” 和 “ 有序多重集 ”。 size / empty / clear, begin / end, insert, find, lower_bound / upper_bound, erase, count “双向访问迭代器”, 阅读全文
摘要:
随机访问, begin / end, front / back, push_back, push_front, pop_front, pop_back, clear 阅读全文
摘要:
主要包括循环队列 queue 和优先队列 priority_queue 两个容器。 queue push, pop, front, back priority_queue push, pop, top 重载 “ < ” 运算符 struct poi { int id; double x, y; }; 阅读全文
摘要:
size / empty, clear, begin / end, front / back, push_back / pop_back 支持随机访问,不支持任意位置O(1)插入。 “随机访问迭代器” 所有的容器都可以视作“前闭后开”的结构。*a.end() 与 a[n] 都是越界访问。 阅读全文
摘要:
a[n + 1] = t = 0; long long area = 0; for(int i = 1; i <= n + 1; i++) { if(a[i] > s[t]) s[++t] = a[i], w[t] = 1; else { int width = 0; while(a[i] < s[ 阅读全文
摘要:
也是在决策集合(队列)中即使排除一定不是最优解的选择。 阅读全文