• #include <map>


    map

    (map)是一棵红黑树,它作为一个容器储存的是一个键值对另一个关键码的映射。必须要定义键值类型的小于号。

    声明方法是:map<a,b> name;其中(a)(b)是数据类型,(name)是这棵红黑树的名字。

    一般(map)都可以当做(hash)表来用,但是因为(map)内部是靠平衡树维护的,所以复杂度是(O(log))的,比一般的手写(hash)要慢。但是(map)还支持中括号操作,所以一般情况下十分方便写。

    声明方式

    map<char,int> s;
    map<char,int>::iterator it;
    

    假设类型(a)(char),类型(b)(int),那么定义一个(map)和这个(map)的迭代器就是这样写。迭代器只支持访问连续地址,所以就只能(++it)(--it)。如果我用这个(map)来统计每个字符出现的次数,那么就可以直接写s[ch]++;

    name.size()​

    返回元素个数。

    name.empty()​

    判断(map)是否为空,为空则是逻辑真,否则就是逻辑假。

    name.clear()​

    清空(map)

    name.begin()/name.end()​

    返回(map)的首迭代器和尾迭代器。左闭右开,所以尾迭代器为空。

    对迭代器解除引用后会得到一个(pair)

    name.insert(pair<a,b>)/name.erase(pair<a,b>(或迭代器))​

    插入一个(pair)类型,删除一个(pair)或者是迭代器。

    name.find(x)​

    返回一个迭代器,存的是一个第一关键字为(x)的二元组。若不存在,则返回(name.end())

    []操作符

    s[x]可以直接访问第一关键字与x相等的二元组的第二关键字。但是如果不存在(map)就会先新建一个二元组,使得这个新建的二元组第一关键字为x,第二关键字为(0)。所以在使用[]操作符之前最好先(find)一下以x为第一关键字的二元组是否存在,不然用多了就会出现大量的无用二元组。

  • 相关阅读:
    Linux dd命令
    冲突域
    三次握手与四次挥手
    sizeof +数组名
    程序内存分配
    OSI七层协议模型
    栈的存储结构
    周转时间
    Gson工具类
    spring注入注解
  • 原文地址:https://www.cnblogs.com/AKMer/p/9889532.html
Copyright © 2020-2023  润新知