zoukankan      html  css  js  c++  java
  • C++学习笔记 <map>

    C++中关联数组是一种内部类型,也被称为映射(map)

    一个map就是一个(关键吗,值)的对偶序列,他提供基于关键码的快速提取操作

    map的关键吗具有唯一性

    map提供双向迭代器

    map的关键吗要提供一个小于操作,保持自己元素的有序性,  迭代通过map时,是按顺序的

    一个map就是一个pair<const Key,mapped_type>的一个序列,mapped_type表示映射值的类型

    pair本身是一个标准库类,默认情况下,pair将被用其元素类型的默认值进行初始化。如果一个类型没有默认构造函数,要将他作为pair的元素时,就必须显示提供创建pair的参数

    下标:

    map的特征操作就是采用下表运算符提供的关联查找。

    将关键吗作为下标执行查找,并返回对应的值,如果不存在该关键码,就将一个具有该关键码和mapped_type类型默认值的pair插入到map。

    不能对const map做下标查找     只有mapped_type有默认值时才能进行下标查找

    映射操作:

    iterator  find(key);  //找关键码为key的元素,如果不存在返回m.end()

    count(key);   //找关键吗为key的元素个数

    lower_bound(key);  //找第一个关键码为key的元素

    upper_bound(key);  //找第一个关键码大于key的元素

    equal_range(key);  //返回一个pair(iterator,iterator)

    表操作:

    将一个值放入关联容器的最方便方式就是使用下标操作直接赋值

    m["a"]=12;

    也可以通过insert()直接插入项目,或者通过erase()删除其中的项目

    pair<iterator,bool> insert(const value_type& val);  //插入(关键码,值)对

    iterator insert(iterator pos,const value_type& val);   //pos只是个提示

    template <class In> void insert(In first,In last);  //从序列中插入

    void erase(iterator pos);   //删除被指元素

    size_type erase(const key_type& k);   //删除关键码为k的元素

    void erase (iteraror first,iterator last);   //删除一个区间

    void clear();     //删除所有元素

    m.insert(value_type& pair);   //返回一个pair(iterator,bool),iteartor是pair插入后(或已存在)的迭代器

    *  []不只是insert()的一种方便表述形式。 m[k]的结果等价于 (*(m.insert(makepair(k,V())).first)).second  ,V()是映射类型的默认值。

     首先创建一个pair(k,V())    然后调用insert(pair)   得到insert()返回的迭代器,找到该迭代器所指向元素的值

    当erase()的参数是关键字时返回的是删除元素的个数

    如:int count = m.erase("Ratbert");

    其他函数:

    size_type  size() const;

    size_type max_size() const;  //map最大可能规模

    bool empty() const{return size()==0 ;}

    void swap(map&);

    map 还提供了 ==、!=、<、>、<=、>=、 swap()    都是非成员函数

  • 相关阅读:
    BZOJ 2789: [Poi2012]Letters 树状数组 + 逆序对
    luogu 5468 [NOI2019]回家路线 最短路/暴力
    BZOJ 2427: [HAOI2010]软件安装 tarjan + 树形背包
    练手爬虫用urllib模块获取
    django安装以及配置
    web框架
    模拟百度进行图片搜索,有问题可以留言
    深入requests库params|data|json参数
    深入理解http1.x、http 2和https
    nodejs 实现 磁力链接资源搜索 BT磁力链接爬虫
  • 原文地址:https://www.cnblogs.com/sqxw/p/3970997.html
Copyright © 2011-2022 走看看