gpt4 book ai didi

c++ - std::map.count 使用 c 字符串不起作用?

转载 作者:行者123 更新时间:2023-11-30 01:17:19 25 4
gpt4 key购买 nike

我希望在性能情况下使用 C 字符串而不是 std::string。我有以下代码:

std::map<const char*, int> myMap;
.
.
.
myMap.insert(std::pair<const char*, int>(str.c_str(), myint));
std::cout << myMap.count(str.c_str()) << std::endl;

奇怪的是,我刚刚输入的值对于 count() 返回 0?

最佳答案

默认情况下,std::map使用 std::less比较键(这与 < 相同,真的,除了它保证也适用于不相关的指针)。这意味着它只是进行指针比较,绝对不是您想要的。

只需使用 C++11 字符串类型 ( std::string ) 而不是用于以 nul 结尾的字符串 ( const char* ) 的旧类型,就可以了。

关于c++ - std::map.count 使用 c 字符串不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24698121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com