📜  C++ STL中的multimap insert()

📅  最后修改于: 2021-05-30 06:39:05             🧑  作者: Mango

multimap :: insert是C++ STL中的内置函数,用于在multimap容器中插入元素。

  1. 句法:
    iterator multimap_name.insert({key, element})
    

    参数:该函数接受一对,该对包括一个键和要插入多图容器的元素。

    返回值:该函数返回一个迭代器,该迭代器指向容器中的新元素。

    // C++ program to illustrate
    // multimap::insert({key, element})
    #include 
    using namespace std;
      
    int main()
    {
      
        // initialize container
        multimap mp;
      
        // insert elements in random order
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
        mp.insert({ 3, 60 });
        mp.insert({ 2, 20 });
        mp.insert({ 5, 50 });
      
        // prints the elements
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }
    
    输出:
    KEY    ELEMENT
    1    40
    2    30
    2    20
    3    60
    5    50
    
  2. 句法:
    iterator multimap_name.insert(iterator position, {key, element})
    

    参数:该函数接受两个参数,如下所述:

    • {key,element}:这指定了一个对,该对由要插入多图容器的键和元素组成。
    • position:不指定要插入的位置,它仅指向要开始搜索插入操作的位置。插入是根据多图容器遵循的顺序完成的。

    返回值:该函数返回一个迭代器,该迭代器指向容器中的新元素。

    // C++ program to illustrate
    // multimap::insert({key, element})
    #include 
    using namespace std;
      
    int main()
    {
      
        // initialize container
        multimap mp;
      
        // insert elements in random order
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
      
        auto it = mp.find(2);
      
        // inserts {3, 6} starting the search from
        // position where 2 is present
        mp.insert(it, { 3, 60 });
      
        // prints the elements
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp.begin(); itr != mp.end(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }
    
    输出:
    KEY    ELEMENT
    1    40
    2    30
    3    60
    
  3. 句法:
    iterator multimap_name.insert(iterator position1, iterator position2)
    

    参数:该函数接受两个参数position1和position2,它们指定元素的范围。范围[position1,last)范围内的所有元素都插入到多图容器中。

    返回值:该函数返回一个迭代器,该迭代器指向容器中的新元素。

    // C++ program to illustrate
    // multimap::insert({key, element})
    #include 
    using namespace std;
      
    int main()
    {
      
        // initialize container
        multimap mp, mp1;
      
        // insert elements in random order
        mp.insert({ 2, 30 });
        mp.insert({ 1, 40 });
      
        // inserts all elements in range [begin, end)
        // in mp1
        mp1.insert(mp.begin(), mp.end());
      
        // prints the elements
        cout << "Elements in mp1 are\n";
        cout << "KEY\tELEMENT\n";
        for (auto itr = mp1.begin(); itr != mp1.end(); ++itr) {
            cout << itr->first
                 << '\t' << itr->second << '\n';
        }
        return 0;
    }
    
    输出:
    Elements in mp1 are
    KEY    ELEMENT
    1    40
    2    30
    
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”