gpt4 book ai didi

c++ - 查找和插入 - std::map c++

转载 作者:搜寻专家 更新时间:2023-10-31 02:06:55 25 4
gpt4 key购买 nike

我的代码有问题。我该如何解决?文本参数是常量字符串。

 'std::pair<const std::basic_string<char>, unsigned int>' is not derived from 'const std::reverse_iterator<_Iterator>'
{ return *__it == _M_value; }

.h文件:

typedef std::map<std::string, uint32_t> MessageDataList;
MessageDataList messages;

.cpp 文件:

MessageDataList::const_iterator mit = std::find(messages.begin(), messages.end(), text.c_str());
if (mit == messages.end())
messages.insert(std::make_pair(text.c_str(), 1));
else
{}

最佳答案

对于std::map,你应该使用std::map::find而不是 std::find:

MessageDataList::const_iterator mit = messages.find(text);

不相关的建议,使用 C++17 的 std::as_const从 const 引用自动调用 find,它返回一个 const_iterator 并启用 auto 来推断它:

auto mit = std::as_const(messages).find(text);

关于c++ - 查找和插入 - std::map c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49488005/

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