當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ unordered_map insert用法及代碼示例


unordered_map::insert()是C++ STL中的內置函數,用於在unordered_map容器中插入具有特定鍵的元素。此函數將容器大小增加1。此函數不會插入重複的條目。此函數有以下變體。全部都是重載函數。語法1:

iterator unordered_map_name.insert({key, element})

參數:該函數將兩個參數作為輸入參數。鍵及其要插入的值。
返回類型:該函數返回一個指向容器中新元素的迭代器。



// C++ program to illustrate 
// unordered_map::insert({key, element}) 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
    // initialize container 
    unordered_map<int, int> 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:

iterator unordered_map_name.insert(iterator position, {key, element})

此函數在指定位置之後在unordered_map中插入元素。
參數:參數key和elements與類型1的函數相同,但是位置是執行搜索操作以將元素插入容器的位置。
返回值該函數返回一個指向容器中新元素的迭代器。
下麵的程序清楚地說明了上麵的語法。

// C++ program to illustrate 
// unordered_map::insert(iterator position, {key, element}) 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
  
    // initialize container 
    unordered_map<char, int> 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:

iterator unordered_map_name.insert(iterator position1, iterator position2)

參數:此函數接受兩個參數position1和position2,它們指定範圍內的所有元素插入到另一個容器中,該範圍包括位置1處的元素,但位置2處的元素除外。
返回值該函數返回一個指向容器中新元素的迭代器。
下麵的程序清楚地說明了上麵的語法。

// C++ program to illustrate 
// unordered_map::insert(iterator position1, iterator position2) 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
  
    // initialize container 
    unordered_map<int, int> 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



相關用法


注:本文由純淨天空篩選整理自ankit15697大神的英文原創作品 unordered_map insert in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。