zoukankan      html  css  js  c++  java
  • #include <algorithm>

    algorithm

    (algorithm)头文件里面包含了很多十分实用的函数,至少于我而言,这是我用的最多的(stl)。由于所有对区间进行操作的函数都遵循左闭右开的原则,所以假设操作区间为[l,r],那么写在函数里的应该是[l,r+1]。

    reverse

    翻转一个(vector)(reverse(vector.begin(),vector.end()))

    翻转一个数组:(reverse(a+1,a+n+1))

    random_shuffle

    随机打乱,用法与(reverse)相同。

    next_permutation

    把操作区间看做一个排列,这个函数就会求比该区间的排列的字典序大的排列的最小的那一个,并且直接在元区间上修改。如果没有下一个了会返回(false),否则会返回(true),同理也有(prev)_(permutation)函数。时间复杂度为(O(n))

    sort

    快速排序一个数组:(sort(a+1,a+n+1))。时间复杂度为(O(nlogn))

    lower_bound/upper_bound

    (lower)_(bound)((a+1,a+n+1,x))表示在(a)数组里找大于等于(x)的数里最小的那个。

    (upper)_(bound)((a+1,a+n+1,x))表示在(a)数组里找大于(x)的数里最小的那个。

    返回的是位置的迭代器,内部实现为二分查找,所以查找区间应该提前排好序,时间复杂度为(O(nlogn))

    unique

    去重函数。返回去重之后的尾迭代器,左闭右开,所以最后一个值是在尾迭代器(-1)的位置上。也需要操作区间提前排好序,时间复杂度为(O(n))

  • 相关阅读:
    ngRoute AngularJs自带的路由
    AngularJs $resource 高大上的数据交互
    AngularJs filter 过滤器
    eBPF监控工具bcc系列一启航
    [转载] kprobe原理解析(一)
    c++通过CMake实现debug开关
    如何使用fio模拟线上环境
    汇编学习pushl, popl
    block:cfq 学习02
    阻抗匹配详细讲解(以前的转贴)
  • 原文地址:https://www.cnblogs.com/AKMer/p/9894669.html
Copyright © 2011-2022 走看看