map
来源:互联网 发布:js获取json对象长度 编辑:程序博客网 时间:2024/05/02 00:55
来源:http://hi.baidu.com/ablenavy/blog/item/22fbfcdc10ccf1a4cc1166fc.html
STL中map的key能否用char *呢?当然可以!
2008-05-08 17:05
在程序中需要用到一个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了!