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