map相对于set区别,map具有键值和实值,所有元素根据键值自动排序,pair的第一个值被称为键值key,pair的第二个值被称为实值value。map也是以红黑树为底层实现机制,根据key进行排序

构造函数

#include<map>
map<int,string> m;
multimap<T1,T2> mlmap;

插入

  • 方法一

    map的key重复将无法放入,multimap则可以

    m.insert({1,"汪汪汪"});
  • 方法二

    map的key重复则更新value

    注意!!multimap不能用这种方法,因为key不唯一

    []方法访问map,如果key不存在将会自动创建

    m[2]="喵喵喵";
  • 其他方法

    m.insert(pair<int,string>(3,"咩咩咩"));
    m.insert(make_pair(4,"咕咕咕"));

遍历

for(auto it=m.begin();it!=m.end();it++)
{
cout<<it->first<<" "<<(*it).second<<endl;
}
for(auto it:m)
{
cout<<it.first<<" "<<it.second<<endl;
}

查找

返回迭代器,找不到返回end迭代器

auto it=m.find(2);
cout<<it->second<<endl;

大小

int size();
bool empty();

map和multimap的更多相关文章

  1. 4.3 map和multimap

    使用map multimap必须包含头文件map *:multimap 1)multimap定义 template<class Key,class Pred=less<Key>,cl ...

  2. STL的基本使用之关联容器:map和multiMap的基本使用

    STL的基本使用之关联容器:map和multiMap的基本使用 简介 map 和 multimap 内部也都是使用红黑树来实现,他们存储的是键值对,并且会自动将元素的key进行排序.两者不同在于map ...

  3. STL之Map和multimap容器

    1.Map和multimap容器 1)map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. 2)map中key值是唯一的.集合中的元素按一 ...

  4. C++ STL 学习笔记__(8)map和multimap容器

    10.2.9 Map和multimap容器 map/multimap的简介 ²  map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. ² ...

  5. STL Map和multimap 容器

    STL Map和multimap 容器 map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供 基于key的快速检索能力.       ...

  6. STL标准库-容器-map和multimap

    技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 map与multimap为关联容器,结构如下 map底层实现依然是rb_tree 他的data可以改,但是key不能改,因此ma ...

  7. STL中 map 和 multimap

    1. 所在头文件<map>. 命名空间std, 声明如下: namespace std{ template <class Key,class T, class Compare = l ...

  8. 【C++ STL】Map和Multimap

    1.结构 Map和multimap将key/value pair(键值/实值 队组)当作元素,进行管理.他们根据key的排序准则将元素排序.multimap允许重复元素,map不允许. 元素要求: k ...

  9. STL学习笔记— —容器map和multimap

    简单介绍 在头文件<map> 中定义 namespace std { template <typename Key, typename T, typename Compare = l ...

  10. STL关联式容器之map和multimap

    一,map和multimap的概念 1.map和multimap的基本知识 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中 ...

随机推荐

  1. JSTL常用便签choose和JSTL常用便签foreach

    2. choose :相当于 java 代码的 switch 语句 1.使用 choose 标签声明    相当于switch 2.使用 when 标签做判断   相当于case 3,使用 other ...

  2. 自行封装JDBCUtils

    自己封装JDBCUtils package com.javasm.util; import com.javasm.bean.Emp; import com.javasm.constants.JDBCC ...

  3. C++基础之字符输出 cout

    找了一些视频教程,课程的示例是输入一个三角形 要输入这样的图案,思路是可以进行拆解,分为两三角形分别输出,先输入一部分,比如,先输出上半部分三角形: 找到规律,可以发现,上面的三角形是7颗星,也就是说 ...

  4. HTML笔记(一) HTML相关概念

    一 HTML概述 1.HTML文档基本结构 先来看一个关于HTML的例子,里面包含了几个主要的HTML标签: <!DOCTYPE html> <html> <head&g ...

  5. Unity泛型单例模式

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class Singleto ...

  6. 下载Vmware 15版本的虚拟机(转载)

    参考网址: https://blog.csdn.net/ITloser_cartridge/article/details/91347452 不登录VMware的下载方法: https://blog. ...

  7. ElasticSearch在linux环境安装和启动

    1.下载 https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0 2.安装启动 2.1 错误1 Java HotSp ...

  8. JDK8:Lambda表达式操作List集合

    JDK8的流对list的处理提供了很大的方便,特别是做报表的时候才能真正体现出来这个功能的强大:结合日常使用过程,有两个体会:一个是减少了数据库连接,最忌讳在循环中进行数据查询,特别是嵌套多层循环的时 ...

  9. 对于如何在IDEA中给Terminal添加git的详解

    具体步骤 1.配置本机环境变量 进入到环境变量的设置界面,然后找到下面的Path变量,双击点开: 然后新建一个变量,路径定义到git的目录下面的bin目录下: 2.WIN+R,然后输入cmd,进入终端 ...

  10. Typora编辑区域空白过大问题

    参考博客:https://blog.csdn.net/m0_55485287/article/details/115207178 在哪个文件编辑? 1.找到使用的主题,打开主题文件夹 2.找到对应的c ...