使用迭代器访问映射的特定键的最有效方法
Most efficient way to access specific key of a map with an iterator?
我有一个std::map<std::string,int>
,我想从中使用字符串值的迭代器访问特定元素。我写了以下代码来实现它。
map<string,int> mymap;
map<string,int>::iterator it=mymap.begin();
string find="Node";
while( (it->first) !=find && it!= mymap.end())
it++;
循环浏览地图的所有关键元素是最有效的方法吗?
map<string,int>::iterator it = mymap.find("Node");
仅此而已。
映射只是一个二进制搜索树。给定的密钥可以在O(log(N))
时间内找到。遍历整个列表需要O(N)
时间。
如果您想要迭代器,请使用map的find
方法。如果要引用数据,只需使用operator[]
即可。这两者都将在O(log(N))
时间内运行。
如果要在映射上查找元素,请使用findmember方法。映射是为这种类型的操作优化的关联容器,不需要在键上循环。
为什么不直接使用map的"find"函数?
相关文章:
- 在C++中初始化向量映射的最有效方法
- 将此布尔值传递给此函数的最有效方法是什么?
- 比较C++变量的最有效方法
- 在 c++ 中解决段树以外的范围查询的有效方法是什么?
- 存储变量的更有效方法是什么?
- 确保套装新鲜度的有效方法
- 当映射包含字符串向量作为值时,从值中获取键的有效方法
- 映射唯一值和重复值的有效方法.可以访问键或值的位置
- 在C++事务之间存储大量字符数据的有效方法
- 在unordered_multimap中精确迭代一次每个键的有效方法
- 一种将 Dart 中的字节数据转换为 C++ 中的无符号字符*的有效方法?
- 检查两个向量是否并行的最有效方法
- 从浮点数中删除小数部分但保留类型的有效方法
- 传递非泛型函数的最有效方法是什么?
- 按升序打印矢量的所有元素直到它为空而没有重复项的最有效方法是什么?
- 创建字符串数组的有效方法
- 返回一个引用C++中另一个类对象的对象的有效方法
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 从std::map值中获取密钥的有效方法