IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    CSPJ 教学总结:STL

    唐巧发表于 2025-04-19 13:05:44
    love 0

    STL 库是 C++ 语言的标准库,我们在比赛中主要用到的有如下内容。

    string 类

    • substr
    • find
    • replace
    • insert
    • erase
    • c_str

    容器

    • pair
    • vector
    • deque
    • list
    • stack
    • queue
    • priority_queue
    • map
    • unordered_map
    • set
    • unordered_set

    算法库

    函数调用示意说明
    sortsort(v.begin(), v.end())快速排序
    stable_sortstable_sort(v.begin(), v.end())稳定排序
    uniqueunique(v.begin(), v.end())去重,返回的是去重后的元素末地址。可以结合 erase 函数来把多余数据删除
    next_permutationnext_permutation(v, v+n)返回全排列的下一个值,当没有下一个排列时,函数返回 false
    prev_permutationprev_permutation(v, v+n)返回全排列的上一个值,当没有上一个排列时,函数返回 false
    nth_elementnth_element(v.begin(), v.begin() + k, v.end()),函数执行后,v.begin()+k 位置的数为排序后的最终位置,即左边的数都小于它,后面的数都大于它
    lower_boundslower_bounds(v, v+n, a)查找大于或等于 a 的第一个位置,如果没找到则返回 end()
    upper_boundsupper_bounds(v, v+n, a)查找大于 a 第一个位置,如果没找到则返回 end()
    equal_rangeequal_range(v, v+n, a)equal_range 返回一个 pair,first 元素是查找到的匹配 a 值的左边界,second 元素是匹配到的 a 值的右边界,边界为左闭右开原则。当 first == second 的时候,相当于没找到目标值
    __gcd__gcd(a, b)返回 a 和 b 的最大公约数
    reversereverse(v.begin(), v.end())将原序列逆序


沪ICP备19023445号-2号
友情链接