Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用迭代器访问映射的特定键的最有效方法?_C++_Dictionary_Iterator_Key - Fatal编程技术网

C++ 使用迭代器访问映射的特定键的最有效方法?

C++ 使用迭代器访问映射的特定键的最有效方法?,c++,dictionary,iterator,key,C++,Dictionary,Iterator,Key,我有一个std::map,我想从中使用迭代器从字符串值访问特定元素。我写了下面的代码来实现它 map<string,int> mymap; map<string,int>::iterator it=mymap.begin(); string find="Node"; while( (it->first) !=find && it!= mymap.end()) it++; map-m

我有一个
std::map
,我想从中使用迭代器从字符串值访问特定元素。我写了下面的代码来实现它

map<string,int> mymap;
map<string,int>::iterator it=mymap.begin();

string find="Node";
        while( (it->first) !=find && it!= mymap.end())
               it++;
map-mymap;
迭代器it=mymap.begin();
字符串find=“Node”;
while((it->first)!=find&&it!=mymap.end())
it++;

通过映射的整个关键元素循环是最有效的方法吗?

如果要在映射上查找元素,请使用member方法。 映射是为这种类型的操作优化的关联容器,无需循环键。

为什么不使用映射的“查找”功能?

map::iterator it=mymap.find(“节点”);
map<string,int>::iterator it = mymap.find("Node");

地图只是一个二叉搜索树。给定的密钥可以在
O(log(N))
time中找到。遍历整个列表将花费
O(N)
时间


如果需要迭代器,请使用map的
find
方法。如果要引用数据,只需使用
运算符[]
。这两个函数都将在
O(log(N))
时间内运行。

看一看可能会发现一些线索……或者感谢您提供了有关该主题的信息,我不知道该成员函数感谢您提供了如何在示例代码上实现它的语法,我将给出这个答案,因为它是这个示例的后续,可以在将来用作参考。