STL 学习笔记

模板及讲解
STL的容器都为左闭右开区间$[begin(), end())$

vector:

  • size():查询$vector$中元素的个数。
  • [index]:直接访问$vector$数组第$index$个元素。
  • push_back(x):把$x$放在$vector$的表尾。
  • reverse(begin(), end()):把$begin()$到$end()$之间的元素翻转
  • reserve():手动调整$capacity$
  • rbegin(), rend():反向迭代器, rbegin()是最后一个元素,rend()是第一个元素

set:

  • count():查询$set$中元素的个数。
  • insert(x):把$x$插入$set$.
  • lower_bound(x):找到第一个大于等于$x$的元素(找不到返回$end()$)。
  • erase(x):删除$x$迭代器所指向元素(不能删去$begin()$)。
  • set<type>::iterator:声明一个迭代器,访问元素使用data->x来访问,类似指针
  • rbegin(), rend():反向迭代器, rbegin()是最后一个元素,rend()是第一个元素

map:

  • rbegin(), rend():反向迭代器, rbegin()是最后一个元素,rend()是第一个元素

string:

  • substr(int a, int len):把$[a,a+len]$提取出来返回值为$string$
  • length():得出字符串长度
  • assign():给string赋值,具体看使用
  • rbegin(), rend():反向迭代器, rbegin()是最后一个元素,rend()是第一个元素

注意所有end()调用即会出错。

常见题型
1、set代替平衡树
Q: Bzoj 2028
解: 求出某个元素与他前后最近的元素。用$set$维护
例题: Bzoj 2028

------ 本文结束 ------