📜  在C++ STL中插入unordered_map

📅  最后修改于: 2021-05-30 14:22:07             🧑  作者: Mango

unordered_map :: insert()是C++ STL中的内置函数,用于在unordered_map容器中插入具有特定键的元素。此函数将容器大小增加1。此函数不会插入重复的条目。此函数有以下变体。全部都是重载函数。
语法1:

参数:该函数接受两个参数作为输入参数。键及其要插入的值。
返回类型:函数返回指向容器中新元素的迭代器。

// C++ program to illustrate
// unordered_map::insert({key, element})
#include 
using namespace std;
  
int main()
{
    // initialize container
    unordered_map ump;
  
    // insert elements in random order
    ump.insert({ 20, 130 });
    ump.insert({ 100, 410 });
    ump.insert({ 31, 60 });
  
    // prints the elements
    cout << "KEY\tELEMENT\n";
    for (auto itr = ump.begin(); itr != ump.end(); itr++) {
        cout << itr->first
             << '\t' << itr->second << '\n';
    }
    return 0;
}
输出:
KEY    ELEMENT
31    60
20    130
100    410

语法2:

此函数在指定位置之后在unordered_map中插入元素。
参数:参数key和elements与类型1的函数相同,但是位置是执行搜索操作以将元素插入容器的位置。
返回值函数返回指向容器中新元素的迭代器。
下面的程序清楚地说明了上面的语法。

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

语法3:

参数:该函数接受两个参数position1和position2,它们指定范围内的所有元素插入到另一个容器中,该范围包括位置1的元素,但位置2的元素除外。
返回值函数返回指向容器中新元素的迭代器。
下面的程序清楚地说明了上面的语法。

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