当前位置: 首页 > news >正文

c++ Map使用

引入头文件:

#include <map>
1、初始化
map<int, int> a, b;
map<sting, int> a, b;
2、添加数据
map<int ,string> maplive;
法一:maplive.insert(pair<int,string>(102,"aclive"));
法二:maplive[112]="April";//map中最简单最常用的插入添加!
3、查找数据
find()函数返回一个迭代器指向键值key的元素,如果没找到返回尾部的迭代器。

map<int ,string> maplive;
map<int ,string >::iterator result;
result=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"<<endl;
else cout<<"wo find 112"<<endl;

对于迭代器 result
result->first //存储键值key
result->second //存储数据value
4、删除数据

map<int ,string> maplive;
map<int ,string >::iterator result;
result=maplive.find(112);
if(result==maplive.end())
cout<<"we do not find 112"<<endl;
else maplive.erase(result); //delete 112;map的erase()函数的形参是迭代器。

如果全部删除 maplive.clear()
5、遍历数据

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

6、排序
Map中的元素是自动按key升序排序,所以不能对map用sort函数:

7、map的基本操作函数:
C++ Maps是一种关联式容器,包含“关键字/值”对
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数,其中形参是key值
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
erase() 删除一个元素
find() 查找一个元素
insert() 插入元素
key_comp() 返回比较元素key的函数
value_comp() 返回比较元素value的函数
lower_bound() 返回键值>=给定元素的第一个位置(返回结果为迭代器)(形参是key值)
upper_bound() 返回键值>给定元素的第一个位置(返回结果为迭代器)(形参是key值)
max_size() 返回可以容纳的最大元素个数
size() 返回map中元素的个数
swap() 交换两个map

转载于:https://www.cnblogs.com/likailiche/p/4897069.html

相关文章:

  • 打造终端下mutt收发邮件环境(fbterm,fetchmail,msmtp,procmail,mutt)
  • hosts文件位置
  • jvm调优——eclipse示例
  • 解决boost::asio的WinSock.h has already been included
  • zuul入门(4)zuul的注解@EnableZuulServer和@EnableZuulProxy
  • 《 民办非企业单位许可业务目标文档》
  • Bootstrap图像
  • 将php分页类YII绑定框架,就需要改变风格的基础
  • 我们为什么要了解一下智能家居的技术标准
  • Netflix已经全部迁移到云端
  • grep 信息提取
  • 利用大数据加强医疗保障
  • spring mvc controller间跳转 重定向 传参
  • Centos下MySQL使用总结
  • 专家答疑:重复数据删除在云中是如何工作的?
  • 分享一款快速APP功能测试工具
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【Linux系统编程】快速查找errno错误码信息
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Apache Zeppelin在Apache Trafodion上的可视化
  • ES6简单总结(搭配简单的讲解和小案例)
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • PHP 小技巧
  • Spring Cloud中负载均衡器概览
  • SpringCloud集成分布式事务LCN (一)
  • windows下mongoDB的环境配置
  • 创建一种深思熟虑的文化
  • 给github项目添加CI badge
  • 前端攻城师
  • 深度学习中的信息论知识详解
  • 深入浅出Node.js
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 微服务入门【系列视频课程】
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 运行时添加log4j2的appender
  • 在electron中实现跨域请求,无需更改服务器端设置
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • #if #elif #endif
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (bean配置类的注解开发)学习Spring的第十三天
  • (python)数据结构---字典
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (备忘)Java Map 遍历
  • (一)Linux+Windows下安装ffmpeg
  • (转)JAVA中的堆栈
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .NET 8.0 中有哪些新的变化?
  • .net refrector
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .Net6使用WebSocket与前端进行通信
  • .NET单元测试