map multimapc++_黑马C++视频笔记《STL之map/multimap》
/* map/multimap容器
* map/multimap属于关联式容器,底层结构是用二叉树实现。
* - map中所有元素都是pair;
* - pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值);
* - 所有元素都会根据元素的键值自动排序;
*
* 优点:可以根据key值(键)快速找到value值.
*
* map和multimap的区别:
* - map不允许容器中有重复key值元素;
* - multimap允许容器中有重复key值元素.
*
* map构造:
* - `map m;`,默认构造函数;
* - `map(const map & m);`,拷贝构造函数;
*
* 赋值:
* - `map& operator=(const map &m);`, 重载等号操作符.
*
* 大小和交换:
* - `size();`,返回容器中元素的数目;
* - `empty();`,判断容器是否为空;
* - `swap(map);`,交换两个map容器中的数据;
*
* 插入和删除:
* - `insert(elem);`,在容器中插入元素,多种插入方式:
* map m;
* (1)`m.insert(pair(1, 10));`;
* (2)`m.insert(make_pair(2, 20));`;
* (3)`m.insert(map::value_type(3,30);`;
* (4)`m[4]=40;`
* 在上面四种插入方法中,虽然第4种最简单,但是第4中容易出错,如`m[5];`看起来像是在取value值,
* 但是这个操作其实创建了一个新的key-value对,只不过value是用默认值来进行填充的.
* - `clear();`,清除所有元素;
* - `erase(pos);`,删除pos迭代器所指的元素,返回下一个元素的迭代器;
* - `erase(beg, end);`,删除区间[beg, end)的所有元素,返回下一个元素的迭代器;
* - `erase(key);`,删除容器中值为key的元素.
*
* 查找和统计:
* - `find(key);`,查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();
* - `count(key);`,统计key的元素的个数.
*
* 排序:与set排序基本相同,我们可以利用仿函数来改变插入数据时候的排序规则.
*/
一个栗子:
//
// Created by shexuan on 2021/1/23.
//
#include
#include
#include
using namespace std;
class myCompare{
public:
// 记住这里加const,不然后报错
bool operator()(int v1, int v2) const {
// 降序
return v1>v2;
}
};
int main(){
map m;
m.insert(pair(1,10));
m.insert(pair(2,20));
m.insert(pair(3,30));
m.insert(pair(4,40));
m.insert(pair(5,50));
for (map::iterator it=m.begin();it!=m.end();it++){
cout << "first: " << it->first << " second: " << it->second << endl;
}
}
map multimapc++_黑马C++视频笔记《STL之map/multimap》相关推荐
- C++工作笔记-stl中map基础用法(插入,遍历,删除)
在最近一直在阅读xx项目,看到里面用到了map,读大学期间基本上从来没用到过这种stl(大学就用了Vector和list).下面对map敲如下代码: 运行截图如下: 代码如下: #include &l ...
- c++ map是有序还是无序的_C++ STL中Map的按Key排序和按Value排序
map是用来存放键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义 ...
- map初始化_需要掌握的Go基础之map:文末附面试题一道
Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现. map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用. map定义 G ...
- java map合并_详解Java8合并两个Map中元素的正确姿势
1. 介绍 本入门教程将介绍Java8中如何合并两个map. 更具体说来,我们将研究不同的合并方案,包括Map含有重复元素的情况. 2. 初始化 我们定义两个map实例 private static ...
- 黑马Uni-App视频笔记(上) 基础部分(含视频素材下载地址)
视频教学:https://www.bilibili.com/video/BV1BJ411W7pX 素材资料(转自B站视频评论区):https://pan.baidu.com/s/1Dkj5iuGRG6 ...
- 从零开始_学_数据结构(五)——STL(map、set、list、vector)
STL容器 前注: STL(标准模板库)是一个C++的软件库,也是C++标准程序库的一部分. 这些容器,应该都是STL里面的一个类. vector封装数组.list封装链表.map和set封装二叉树 ...
- 【vue基础】黑马vue视频笔记(二)
文章目录 一.过滤器(vue2) (1)Filters过滤器概念 (2)定义过滤器 (3)私有过滤器和全局过滤器 (4)其他 (5)过滤器的注意点 二.watch 侦听器 (1)什么是侦听器 (2)侦 ...
- map初始化_您可曾这样初始化一个map呢?
最近作者打球,不小心把手给弄伤了,虽然学到了一点Java冷知识,但最近不能像以往那样,啪啦啪啦写几百个字了,需要悠着点,所以今天来点轻松哒- 我有个怪癖,喜欢看别人写的代码,然后找出不尽如人意的地方, ...
- 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...
最新文章
- android wifi模拟,模拟WifiManager进行Android单元测试
- leetcode算法题--Surrounded Regions
- 今天仔细学习了html加载执行的顺序
- java 中的访问修饰符
- html怎么改艺术字体颜色,html超链接字体颜色怎么改
- 快速排序算法 java 实现
- 工程师软技能4:找出你的短板
- Android学习之——ListView下拉刷新
- 一些提高生产力的 Linux 命令和技巧
- android checkbox 选中事件_智慧树知到Android移动应用开发基础章节测试答案
- 计算机基础应用课件,大学计算机基础应用课件
- 矩阵分解:特征值分解、SVD分解、舒尔分解、谱分解
- 开发中的多线程ID检测工具(ESET_VC52_MCID)
- 你所学的专业是怎么回事——摄影测量与遥感
- 在Windows Server 2012中搭建WEB服务器,附ASP配置方法
- inkscape裁剪
- 【天梯赛练习题(c语言)】
- jmeter- 循环控制器计数器 实现批量添加操作
- Java开发真的这么赚钱?连做金融的忍不住转行了
- 跨界营销新套路:立白和杜蕾斯这样“去污”
热门文章
- CSDN企业数字化之路 ——「低代码」发展研讨会北京站现场实录大放送
- 以“基”取胜:戴尔科技云平台 释放企业新动能
- 关于谷歌云,你应该知道的一切! | 技术头条
- Cloud一分钟|茅台4.5亿入股云上贵州大数据,后者已接管苹果中国iCloud; 阿里云进入印度市场,增长速度远超当地平均水平...
- 最小覆盖模型matlab_数学规划模型的matlab求解 非线性最小二乘lsqnonlin
- python zip压缩_Python zip压缩与解压(zipfile模块实例)
- jq ajax异步上传文件,jQuery插件ajaxFileUpload异步上传文件
- uni-app集成uview
- ETL异构数据源Datax_日期增量同步_13
- TortoiseGit 推送本地仓库变动文件至远程仓库_入门试炼_06