📜  C++ STL中的map find()函数

📅  最后修改于: 2021-05-30 12:25:59             🧑  作者: Mango

map :: find()是C++ STL中的内置函数,该函数返回一个迭代器或常量迭代器,该迭代器或常量迭代器引用键在映射中的位置。如果键在地图容器中不存在,它将返回一个引用map.end()的迭代器或常量迭代器。
句法:

iterator=map_name.find(key)
        or 
constant iterator=map_name.find(key)

参数:该函数接受一个强制性参数,该键指定要在地图容器中搜索的键。

返回值:该函数返回一个迭代器或常量迭代器,该迭代器或常量迭代器引用键在地图中的位置。如果键在地图容器中不存在,它将返回一个引用map.end()的迭代器或常量迭代器。

搜索元素的时间复杂度:
std :: map中搜索元素的时间复杂度为O(log n)。即使在最坏的情况下,它也将是O(log n),因为元素在内部存储为“平衡二进制搜索树”(BST),而在std :: unordered_map中,最佳情况下,搜索的时间复杂度是O(1)。

下面是上述函数的说明:

CPP
// C++ program for illustration
// of map::find() function
#include 
using namespace std;
 
int main()
{
 
    // Initialize container
    map mp;
 
    // Insert elements in random order
    mp.insert({ 2, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 3, 20 });
    mp.insert({ 4, 50 });
 
    cout << "Elements from position of 3 in the map are : \n";
    cout << "KEY\tELEMENT\n";
 
    // find() function finds the position
    // at which 3 is present
    for (auto itr = mp.find(3); itr != mp.end(); itr++) {
       
        cout << itr->first << '\t' << itr->second << '\n';
    }
 
    return 0;
}


输出
The elements from position 3 in map are : 
KEY    ELEMENT
3    20
4    50

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”