zoukankan      html  css  js  c++  java
  • 小结C++中一些自带的好用东西

     

    STL部分

    <set>/<multiset>

    支持插入一个元素,删除指定key值的元素,查找指定key值的元素,返回最大/小值,找前驱,找后继,返回指定key值的相同元素个数。

    部分代替平衡树中一些操作。不能updatapush_down之类的操作,也不能找第K大等。

    setcmp可以自己写,这给我们带来了不少方便。

    *如果在set中按key1比较是有序的,且key2也是有序的。此时我们要找指定key2时就可以在cmp函数中人工设置一个开关来解决。也就是说set中的查找要保证key是有序的。如NOI2007cash一题。

     

    <map>/<multimap>

    set不同之处在于map是一个映射,可以知道指定key值的一个映射(数据)。

    在时间要求不是很苛刻的情况下,可以代替Hash。如记忆化搜索。

    可以代替链表,即动态开空间。如AC自动机中son

    可以嵌套数据结构。如mapset

    <stack>

    <queue>队列

    <deque>双端队列

    <vector>/<list>

    类似于线性表一样的东西。

    很大一个好处是内存是动态的。

     

     

    一些线性表基本操作

     

        如果数据是线性有序的,就可以二分。   

         Lower_bound(S,T,key):找第一个大于等于key的。

         upper_bound(S,T,key):找第一个大于key的。

        当然也可以这么干

        upper_bound(S,T,key)-1:找第一个小于等于key的。

        Lower_bound(S,T,key)-1:找第一个小于key的。

        binary_search(S,T,key):判断关键字为key的是否存在。

     

    Reverse(S,T):翻转

    Unique(S,T):去重

    min_element:返回最大

    max_element:返回最小

    next_permutation:下一个排列

    prev_permutation:上一个排列

    random_shuffle:随机生成一个元素的排列

     

    其他

    <complex>

           虚数的使用。

     

  • 相关阅读:
    odoo11 审批流中行总额与申请单总额的计算问题
    odoo11 systemd service自动启动配置
    odoo11登录之后返回的session信息分析
    odoo 11 配置nginx反向代理
    odoo 11 之signup_with_phone模块分析
    Ionic1 环境破坏后程序重新恢复过程
    odoo11 安装python ldap
    记上海技术交流会之行备忘录(superset与odoo整合)
    C# 函数式编程:LINQ
    如何在 ASP.NET Core 测试中操纵时间?
  • 原文地址:https://www.cnblogs.com/oldmanren/p/3287371.html
Copyright © 2011-2022 走看看