码迷,mamicode.com
首页 > 其他好文 > 详细

map的key 为指针

时间:2018-09-28 12:33:46      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:ring   str   程序   har   Fix   操作符   text   div   nbsp   

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了!

 

 

 

map的key 为指针

标签:ring   str   程序   har   Fix   操作符   text   div   nbsp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!