您的位置:首页 > 其它

map中如何将key转换成char*【超级经典的将string转换成char*】

2012-11-08 14:33 471 查看
优化前与优化后做个简单比较,明教主Orz...

以前我们利用map函数将字符串转换成整型时,一般习惯性的都是map<string,int>mapstr,虽然很好用,但是数据量大一些就会发现效率N差劲。所以,为了提高效率我们把map<string,int>mapstr改成map<char*,int>mapstr,可以用了之后发现结果总不是我们想要的。这是为什么呢?

因为,key中存放的是指针,所以找不到。

因此,我们需要重载操作符,使得查找是比较指针所对应的字符串就行了。

struct cmp

{

bool operator()(const char *s1, const char *s2)

{

return strcmp(s1,s2)<0;

}

}

map<char*,int,cmp>;

注意输入的时候指针指向的位置,所以不能只定义一个字符串。

之后直接查找就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: