[英]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");
map 只是一個二叉搜索樹。 可以在O(log(N))
時間內找到給定的鍵。 遍歷整個列表將花費O(N)
時間。
如果你想要一個迭代器,使用 map 的find
方法。 如果您想引用數據,只需使用operator[]
。 這兩個都將在O(log(N))
時間內運行。
如果要在地圖上查找元素,請使用find成員方法。 映射是針對此類操作優化的關聯容器,無需遍歷鍵。
為什么不直接使用地圖的“查找”功能?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.