algorithm 库

  • shuffle(bg,ed,gen)
    • 打乱 [bg,ed)[bg,ed) 的顺序,gen 是一个随机数生成器(mt19937)。
    • 时间复杂度 O(n)O(n)。
    • C++11 之后请尽量使用 shuffle 而不是 random_shuffle
  • is_sorted(bg,ed)
    • 判断 [bg,ed)[bg,ed) 是否升序排序。
    • 时间复杂度 O(n)O(n)。
  • minmax(a,b)
    • 返回一个 pair<>,其 first 为 min⁡(a,b)min(a,b),second 为 max⁡(a,b)max(a,b)。
    • 时间复杂度 O(1)O(1)。
    • 常用于无向图存边的去重问题。
  • max(l)/min(l)
    • ll 是一个初始化列表,这个函数返回 ll 中最大 / 最小的元素。
    • 时间复杂度 O(sizel)O(sizel​)。
    • 在多个元素求最大 / 最小时非常好用:max({a,b,c})
  • minmax(l)
    • ll 是一个初始化列表,这个函数返回一个 pair<>,其 first 为 ll 中最小的元素,second 为 ll 中最大的元素。
    • 时间复杂度 O(sizel)O(sizel​)。
    • 若要求一个序列 / 容器中最小和最大的元素,请使用 minmax_element
  • minmax_element(bg,ed)
    • 返回一个 pair<>,其 first 为 [bg,ed)[bg,ed) 中最小的元素,second 为 [bg,ed)[bg,ed) 中最大的元素。
    • 时间复杂度 O(n)O(n)。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部