Answers:
使用my_map.count( key ); 它只能返回0或1,这实际上是您想要的布尔结果。
也可以交替使用my_map.find( key ) != my_map.end()。
map::count实现为find(__x) == end() ? 0 : 1;。因为multimap您可能会有性能方面的争论,但这不是OP的问题,我仍然更喜欢优雅。
                    has(k)/ contains(k)像地球上其他所有健全的地图类一样。界面设计不佳。find()方法过于冗长,并且该count(k)方法绝对不是与语义平价的has(k)。就此而言,两者都不是find(k)。查看此问题的观看次数。
                    Potatoswatter的回答是可以的,但我更喜欢使用find或lower_bound代替。lower_bound之所以特别有用,是因为如果您希望插入具有相同键的内容,则返回的迭代器随后可以用于提示插入。
map<K, V>::iterator iter(my_map.lower_bound(key));
if (iter == my_map.end() || key < iter->first) {    // not found
    // ...
    my_map.insert(iter, make_pair(key, value));     // hinted insertion
} else {
    // ... use iter->second here
}
              value如果不需要插入,则可以跳过的计算。
                    lower_bound基于解决方案的解决方案是过大的。我刚才提到我的回答是“为了完整性”。就像我说的那样,您的就足够了。:-)
                    insert先验选择的关系。实际上,如果使用,则存在另一个差异multimap,该lower_bound方法将插入等效范围的开头,而普通insert方法将添加至范围的结尾。