map的key 为指针

STL中map的key能否用char *呢?当然可以!

在程序中需要用到一个map,本来是这样写的,
map<string, int> mapStr;

为了追求效率,把string改成了char *,
map<char *, int> mapStr;
结果呢?
可想而知,每次放进去的是指针,
当查找的时候就出问题了,总是找不到。
因为key中存放的是指针,当然找不到了。

需要重载一下操作符,当查找时比较指针对应的字符串就可以了。
修改如下:

struct ptrCmp
{
    bool operator()( const char * s1, const char * s2 ) const
    {
        return strcmp( s1, s2 ) < 0;
    }
};

map<char *, int, ptrCmp> mapStr;

再进行查找就OK了!

原文地址:https://www.cnblogs.com/pjl1119/p/9717524.html

时间: 2024-10-20 00:19:21

map的key 为指针的相关文章

Java Map按照Key和Value排序【转】

package kingtool.sort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; import jav

C++基础之map按key排序

在项目当中有要用到map按key排序的需求,就在百度上搜了一下: typedef pair<int,int> PAIR; int cmp(const PAIR& x, const PAIR& y) { return x.second < y.second; } map<int,int> imgdis; //待排序对象,根据double值排序 imgdis[1] = 3; imgdis[10] = 1; imgdis[3] = 5; imgdis[12] = 4

c++ map按key或value的值分别进行排序

一.对key值进行特定的排序 map容器里面有两个值一个key一个是value,map<key,value>,其实map里面还有第三个参数,是一个类,用来对map的key进行排序的类,定义如下 template<class _Kty, class _Ty, class _Pr = less<_Kty>, class _Alloc = allocator<pair<const _Kty, _Ty> > > class map less<_Kt

获取Map API Key

开发人员在基于Google Maps服务进行开发之前,需要申请一组验证过的Map API Key,这样才可以使用Google Maps服务.申请过程如下:1.在Eclipse中打开“Window”|“Preference”菜单,在左侧的选项中一次选择"Android"|"Bulid",在右侧的面板中可以看到Default debug keystore的路径.2.打开CMD命令行,使用JDK自带的keytool工具,通过keystore生成MD5指纹.3.注册一个Go

map 按key排序 按value排序

http://blog.csdn.net/iicy266/article/details/11906189 这篇文章很好,提醒我们熟悉函数原型的重要性 map 按key排序 按value排序,码迷,mamicode.com

你永远学不会的设计--&gt;百度地图map api key 的设置

哈哈 说到咱的互联网大佬 baidu, 真是无人不知,无人不晓,可是多少人能领会他的设计哲学呢? 来看看吧.... 事情要从上周的一个小实验说起,目标是调用baidu map api 做个产品原型. 通常呢,调用API 都是需要申请key的,方便有针对性地统计调用请求的情况,这个是行业的通用做法,然后小弟就去官网乖乖申请了个key, 然后呢,有一大堆的api 分类,啥 place API, route API , static map API 不管统统给我选上, 接下来就是查看api 开发文档示

Java Map按键(Key)排序和按值(Value)排序

Map排序的方式有很多种,两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value).1.按键排序jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法 TreeMap(Comparator<? super K> comparator)  传入我们自定义的比较器即可实现按键排序. Java代码   public class MapSortDemo { public static void main(Strin

Java集合篇六:Map中key值不可重复的测试

package com.test.collection; import java.util.HashMap; import java.util.Map; //Map中key值不可重复的测试 public class TestEquals { public static void main(String[] args) { String s1=new String("abc"); String s2=new String("abc"); Map map=new Has

Java Map获取key和value 以及String字符串转List方法

一.问题描述 这里描述两个问题: 1.Java Map获取key和value的方法: 2.String字符串转List的方法: 二.解决方法 1.Java Map获取key和value的方法   2.String字符串转List的方法