有什么不同?

我希望能够查看某个元素是否在HashMap中,并且我刚刚发现,如果执行h [element],它将返回默认元素(如果未找到),并且不为null。我将如何使用迭代器find方法查看元素是否存在?

谢谢

最佳答案

假设您是在谈论STL,而不是在谈论某些第三方库...如果键不在地图中,m[key]不仅会返回默认对象。它将使用该键和默认构造的对象作为值在地图中创建一个新元素。

您可以使用此:

map<string, int> mymap;
//add items to it
map<string, int>::iterator it = mymap.find("key");
if (it != myMap.end()) {
    // 'key' exists; (it->second) is the corresponding int
}


或者,如果您不需要获取对象(您只想知道它是否存在):

map<string, int> mymap;
//add items to it
if (mymap.count("key") == 1) {
    // 'key' exists
}

关于c++ - C++中的迭代器和常量迭代器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1954249/

10-15 04:42