一:介绍

map是STL的关联式容器,以key-value的形式存储,以红黑树(平衡二叉查找树)作为底层数据结构,对数据有自动排序的功能。
命名空间为std,所属头文件<map>

二:常用操作

容量:
a.map中实际数据的数据:map.size()
b.map中最大数据的数量:map.max_size()
c.判断容器是否为空:map.empty()

修改:
a.插入数据:map.insert()
b.清空map元素:map.clear()
c.删除指定元素:map.erase(it)

迭代器:
a.map开始指针:map.begin()
b.map尾部指针:map.end() 注:最后一个元素的下一个位置,类似为NULL,不是容器的最后一个元素

三:存储

     map<int, string> map1;

     //方法1:
map1.insert(pair<int, string>(, "beijing"));
//方法2:
map1[] = "changping";
//方法3:
map1.insert(map<int, string>::value_type(, "huilongguan"));
//方法4:
map1.insert(make_pair<int, string>(, "xierqi"));

四:遍历

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

五:查找

     //方法1
string value1 = map1[];
if (value1.empty())
{
cout << "not found" << endl;
} //方法2
map<int, string>::iterator it = map1.find();
if (it == map1.end())
{
cout << "not found" << endl;
}
else
{
cout << it->first << ":" << it->second << endl;
}

六:修改

map1[] = "tianjin";

七:删除

     //方法1
map1.erase(); //方法2
map<int, string>::iterator it1 = map1.find();
map1.erase(it1);

扫码关注公众号

专注分享Java,C/C++,STL,Spring框架,mybatis框架,mysql,redis,分布式,高并发,设计模式,爬虫,docker,shell编程等相关技术,在这里一起探讨,一起学习,一起进步,不定期分享视频书籍资源,充分利用碎片化时间,让我们的技术之路更加有乐趣。

STL:map用法总结的更多相关文章

  1. c++ STL map 用法

    map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...

  2. STL map 用法

    首先make_pair Pairs C++标准程序库中凡是"必须返回两个值"的函数, 也都会利用pair对象  class pair可以将两个值视为一个单元.容器类别map和mul ...

  3. STL map用法总结(multimap)

    2017-08-19 10:58:52 writer;pprp #include <map> #include <string> #include <iostream&g ...

  4. POJ2503 STL map用法

    2017-08-21 15:42:01 writer:pprp 除了用到map以外,输入也是一个问题 用到了sscanf详情请看上一篇博客 /* theme:第一章 - 分治算法 name: POJ ...

  5. C++中的STL中map用法详解(转)

    原文地址: https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html C++中的STL中map用法详解   Map是STL的一个关联容器,它提供 ...

  6. std::map用法

    STL是标准C++系统的一组模板类,使用STL模板类最大的好处就是在各种C++编译器上都通用.    在STL模板类中,用于线性数据存储管理的类主要有vector, list, map 等等.本文主要 ...

  7. POJ 3096 Surprising Strings(STL map string set vector)

    题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 &qu ...

  8. 详解C++ STL map 容器

    详解C++ STL map 容器 本篇随笔简单讲解一下\(C++STL\)中的\(map\)容器的使用方法和使用技巧. map容器的概念 \(map\)的英语释义是"地图",但\( ...

  9. Features Track[STL map]

    目录 题目地址 题干 代码和解释 参考 题目地址 Features Track(ACM-ICPC 2018 徐州赛区网络预赛 ) 题干 代码和解释 题意:一个动画有许多 n 帧,每帧有 k 个点,点的 ...

随机推荐

  1. PostBack

    PostBack 字面意义 Post提交 Back回来. 提交回来. 1. AutoPostBack 服务器控件需要设置 AutoPostBack="true" 后才会提交服务器. ...

  2. .net 3.5 Lambda表达式

    Lambda表达式 转自http://www.cnblogs.com/kingmoon/archive/2011/05/03/2035696.html "Lambda表达式"是一个 ...

  3. 以太坊系列之十三: evm指令集

    evm指令集手册 Opcodes 结果列为"-"表示没有运算结果(不会在栈上产生值),为"*"是特殊情况,其他都表示运算产生唯一值,并放在栈顶. mem[a.. ...

  4. iOS APP打包上传到APPstore的最新步骤

    一.前言: 作为一名iOS开发者,把辛辛苦苦开发出来的App上传到App Store是件必要的事.但是很多人还是不知道该怎么上传到App Store上 下面就来详细讲解一下具体流程步骤. 二.准备: ...

  5. CHNetRequest网络请求

    Paste JSON as Code • quicktype 软件的使用 iOS开发:官方自带的JSON使用 JSON 数据解析 XML 数据解析 Plist 数据解析 NetRequest 网络数据 ...

  6. 简单的IDEA破解到2099年

    原文链接:https://www.cnblogs.com/duende99/p/10038640.html 破解方式有2种,第一种比较方便 第一种比较方便1.使用注册码破解:http://idea.l ...

  7. Android 开发环境的构建备忘

    准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/               JD ...

  8. 修复win10无法双击打开txt文档.reg

    Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.txt]@="txtfile""Content Type& ...

  9. JDBC记录

    13:55 2018/7/22 用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问 ---------常用API--------- |- Driver接口: 表示java驱动程序接 ...

  10. sublime text3文本字体大小设置

    1.perferences->settings-user 4·将以下代码粘贴进入即可 { "font_face": "source code pro, " ...