std::map char*做key
用 char*作为std::map中的key
网上的用法:
声明map时需要添加一个cmp比较函数,不然map在比较时,使用char *的指针进行比较,而不是比较char字符串。
- #include <cstring>
- struct cmp_str
- {
- bool operator()(char const *a, char const *b)
- {
- return std::strcmp(a, b) < 0;
- }
- };
- int main ( int argc, char ** argv )
- {
- std::map<const char*, int, cmp_str> map;
- map["aa"] = 1;
- map["ca"] = 2;
- map["ea"] = 3;
- map["ba"] = 4;
- map["ba"] = 5;
- map["bb"] = 6;
- map["ba"] = 7;
- std::map<const char*, int, cmp_str>::iterator it = map.begin();
- for (; it != map.end(); it++ )
- {
- std::cout << (*it).first << ": " << (*it).second << std::endl;
- }
- return 0;
- }
我用这个时报错了,不加cmp_str时,如果char*内容一样,地址不一样,就会认为key是不一样的,后来把key改为string了,这个问题没有了。
参考:
http://stackoverflow.com/questions/4157687/using-char-as-a-key-in-stdmap
std::map char*做key相关推荐
- c++ std::map value_type、key_type、mapped_type
map<string, int>::key_type v1; //此时key_type的v1类型是string map<string, int>::mapped_type ...
- 如何使用基于范围的for()循环与std :: map?
本文翻译自:How to use range-based for() loop with std::map? The common example for C++11 range-based for( ...
- CMap在用CString做key类型时,ARG_KEY要选LPCTSTR
CMap在用CString做key类型时,ARG_KEY要选LPCTSTR 文章来源:http://blog.csdn.net/flyingxu/archive/2005/12/26/562852. ...
- 【c++】映射表std::map
文章内容为网络搜集内容 std::map 映射表(Map)容器是一个按特定顺序存储以键值对组合而成的元素的关联容器 // <map> template < class Key,cla ...
- c++ map是有序还是无序的_C++ STL中Map的按Key排序和按Value排序
map是用来存放键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义 ...
- std::map用法总结
给出了map的基本用法如插入.查找.删除.遍历等等,同时告诉你如何实现双键map,包括 (1) 只有两个键都匹配才命中目标 (2) 两个键中任意一个匹配就命中目标 可以扩展到多键 (一) 介绍特点:1 ...
- 关于 std::set/std::map 的几个为什么
2013-01-20 std::set/std::map (以下用 std::map 代表) 是常用的关联式容器,也是 ADT(抽象数据类型).也就是说,其接口(不是 OO 意义下的 interfac ...
- C++ STL中Map的按Key排序和按Value排序
map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行 ...
- 关联式容器使用char*充当key或者value的时候
比如说map,如果使用char*当作key,或者value的时候,可能因为char*,只是指针(地址)而发生意想不到的bug, 因为一旦对这个map对象赋值,他只存储指向某个变量的指针变量,而以前的那 ...
最新文章
- 全景图拼接算法实现与改进
- pytorch 获取模型参数_剑指TensorFlow,PyTorch Hub官方模型库一行代码复现主流模型...
- zabbix3.0.4 部署之一 (简介)
- Qt 操作words实例 --- 幼儿快算题生成器
- wxWidgets:wxEventBlocker类用法
- 宠物商店(pet-shop) 学习笔记
- mybatis.net - 5 嵌入资源与引用资源
- OSGI(面向Java的动态模型系统)
- HDOJ 2526 HDU 2526 浪漫手机 ACM 2526 IN HDU
- SQL中的模糊范围查询特殊符号应用
- 阿里云centos 6.9安装oracle10g
- 用 Ajax 和 RSS 攒个首页新闻——(上)
- 【HDU 6031]】 Innumerable Ancestors
- Json-getJSON
- linux挂载40t硬盘,Centos支持40T磁盘阵列MD1200
- A blockchain‑based smart home gateway architecture for preventing data forgery
- 短信服务器部署位置,搭建短信服务器
- QGIS二次开发:鼠标在地图上移动时,状态栏显示鼠标所在位置经纬度
- net—card seting monitor mood
- 个人精心整理的前端学习开发实用的网站
热门文章
- erdas图像增强步骤_基于erdas的图像增强处理
- html和css之间有什么区别,html语法和css语法之间有什么区别
- java ssh工具类_JAVA SSH2工具类
- nb-iot_如何使用语音通过Android控制IoT设备
- python制作验证码_Python编写生成验证码的脚本的教程
- axios请求接口http_axios调用接口
- java中capitals,Java GlobalConfiguration.isCapitalMode方法代码示例
- mysql文件怎么导入_mysql怎么导入sql文件
- 工程数据计算机处理的方法有,第二章 CADCAM技术基础-工程数据的计算机处理2011.ppt...
- Spring Boot 2.x基础教程:多文件的上传