在映射中插入元素| C ++ STL

map是关联容器。映射以一对键值的形式存储元素,并且已映射的值和键值以排序的方式存储。在map中插入元素所需的时间通常为O(logn)。有多种方法可以在map中插入元素,本文讨论了一些方法。

1)使用insert()方法

std :: map :: insert()函数是C ++ STL中的内置函数,用于在map中插入元素。我们可以通过以下方式使用此功能:

  • insert(pair):在map中插入一对。

  • insert(pos,pair):在map中的指定位置插入一个对。

  • insert(beg,end):用于将一个map的内容复制到另一个。

示例

#include <iostream> 
#include <map> 
using namespace std; 
  
int main() {
    map< char, int > myMap; 
      
    //声明迭代器 
    map<char, int>::iterator it ; 
    map<char, int>::iterator it1;
 
 	//插入(对)示例
    myMap.insert( pair<char, int>('P', 100) ); 
      
    //插入后打印映射元素 
    cout << "The elements of map after insertion : \n"; 
      
    for (it1 = myMap.begin(); it1!=myMap.end(); ++it1) 
        cout << it1->first << "  :  " << it1->second << endl; 
      
    it = myMap.begin(); 
      
    //insert(pos,pair)的示例 
    //通过指定位置插入map对
    myMap.insert(it, pair<char, int>('Q', 101) ); 
      
    cout << endl ; 
      
    //插入后map中的元素
    cout << "The elements of map after insertion using insert(pos, pair) : \n"; 
      
    for (it1 = myMap.begin(); it1!=myMap.end(); ++it1) 
        cout << it1->first << "  :  " << it1->second << endl; 
      
    //初始化另一个map  
    map<char, int> myMap2; 
      
    //使用insert(beg_iter,end_iter)复制所有元素 
    myMap2.insert(myMap.begin(), myMap.end()); 
      
    cout << endl ; 
      
    //map的打印元素
    cout << "The elements of new map after using insert(beg_iter, end_iter) : \n"; 
      
    for (it1 = myMap2.begin(); it1!=myMap2.end(); ++it1) 
        cout << it1->first << "  :  " << it1->second << endl; 
     
	return 0;  
}

输出结果

The elements of map after insertion :
P  :  100

The elements of map after insertion using insert(pos, pair) :
P  :  100
Q  :  101

The elements of new map after using insert(beg_iter, end_iter) :
P  :  100
Q  :  101