zoukankan      html  css  js  c++  java
  • stl(14)map容器multimap容器

    1.map容器底层结构和set容器类似。但是map容器中的没有元素是一个键值对,即一个pair类型的元素,first为元素的键,second为元素的值。

    2.map容器中会按照元素的键值来进行排序,并且map容器中不允许出现相同的键值的元素,multimap容器中允许出现键值一样的元素

    3.不能通过map的迭代器来修改元素的键值,但是可以修元素的value值。因为map容器是使用键值排序的而不是value值。

    4.map的构造,赋值,swap,empty,size函数的使用与set容器一致

    5.insert向map容器中插入数据,inset的返回值是一个

    (1)几种不同的插入方式

    std::map<int,int> map;

    map.insert(std::pair<int,int>(1,10));

    map.insert(std::make_pair(2,20));

    map.insert(std::map<int,int>::value_type(3,30));

    map[4]=40;

    遍历:

    for (std::map<int, int>::iterator it = map.begin(); it != map.end();it++) {
    std::cout<<(*it).first<<" "<<it->second <<std::endl;
    }

    6.clear和erase的用法也和set类似,但是map容器通过erase传入一个元素进去删除与该元素相同的元素的时候,这里只传入key值,会删除map容器中key值相等的元素

    std::map<int,int> map;

    map.insert(std::pair<int,int>(1,10));

    map.erase(1);

    7.同样find,count,lower_bound,upper_bound,equal_range的用法与set容器,但是针对的都是键进行查找操作。

    8.修改map容器默认的排序规则

    class MyCompare{

    public:

      bool operator()(int v1,intv2){//重载操作符"()"

        return v1>v2;

      }

    }

    std::map<int,int,MyCpmpare> map;

    map.insert(std::pair<int,int>(1,10));

    map.insert(std::pair<int,int>(2,10));

    map.insert(std::pair<int,int>(3,10));

  • 相关阅读:
    从1.5k到18k, 一个程序员的5年成长之路
    我是如何准备技术面试的
    10个惊艳的Ruby单行代码
    经典Spring面试题和答案
    数据分析应该要避免的6个错误
    代码重构的实战经验和那些坑
    勾勒物联网与大数据的数据中心路线图
    共筑Spark大数据引擎的七大工具
    es6学习总结(一)
    vue-cli搭建与vue-router(路由配置)
  • 原文地址:https://www.cnblogs.com/maycpou/p/14348939.html
Copyright © 2011-2022 走看看