c++ - 如果 "key"不存在,map::find() 会返回什么样的值?

标签 c++ dictionary iterator find key

假设我的代码中有一张 map :

map <string, set<string> > myMap;

...我想从 map 中获取一个元素:

myMap.find("key");

我的问题是:如果“key”不存在,myMap 会返回什么样的值? `

///编辑 任何人都可以指出错误的原因吗?编译器没有发现任何错误,但是测试整个算法的服务器由于这个功能不接受它。

    map< string, set<string> >::iterator mapIterator = container.find(key);

    if(mapIterator != container.end()){
        set<string>::iterator setIterator = mapIterator->second.begin();
        if(!mapIterator->second.empty()){
            while(setIterator != mapIterator->second.end()){
                cout << *setIterator << endl;
                ++setIterator;
            }
        }else{
            .......
        }
    }else{
        ..........
    }

最佳答案

它返回一个等于myMap.end() 的迭代器。您可以轻松地对此进行测试:

auto it = myMap.find("key");
if (it == myMap.end())
{
  std::cout << "key not found\n";
}

关于c++ - 如果 "key"不存在,map::find() 会返回什么样的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23140956/

相关文章:

c++ - VLC 命令行音频/视频流

在for循环中具有三个值的Python dict

python - YAML 加载 5e-6 作为字符串而不是数字

python - 将三个列表合并到一个字典中

python - 如何合并两个 python 迭代器?

c++ - cv::goodFeaturesToTrack 不返回任何特征

c++ - NULL != C++ 中的值是什么意思?

C++模板——根据参数编译成员函数

java - Iterator 接口(interface)中的哪个方法可以移除之前返回的元素?

c++ - 将单个参数传递给需要迭代器范围的函数