📜  C++ STL-map.insert()函数

📅  最后修改于: 2020-10-18 11:30:50             🧑  作者: Mango

C++ STL map.insert()函数

C++ map insert()函数用于在地图中插入新元素。

因为元素键在映射中是唯一的,所以插入操作首先检查给定键是否已存在于映射中,如果键已存在于映射中,则它不会插入映射中,并且迭代器将迭代到现有键返回,否则在地图中插入新元素。

句法

single element (1)     pair insert (const value_type& val);   //until C++ 11

with hint (2)    iterator insert (iterator position, const value_type& val);   //until C++ 11

range (3)    template 
             void insert (InputIterator first, InputIterator last);        //until C++ 11

single element (1)  pair insert (const value_type& val);
          template  pair insert (P&& val); //since C++ 11
            
with hint (2)    iterator insert (const_iterator position, const value_type& val);
           template  iterator insert (const_iterator position, P&& val);

range (3)    template 
             void insert (InputIterator first, InputIterator last); //since C++ 11

initializer list (4)    void insert (initializer_list il);   //since C++ 11

参数

val:要插入地图的键值。

position:提示要插入元素的位置。

第一:插入范围的起点。

last:要插入范围的末尾。

il:初始化列表。

返回值

它返回一个布尔对来指示是否发生插入,并返回一个指向新插入元素的迭代器。

例子1

让我们看一个将元素插入地图的简单示例。

#include 
#include 

using namespace std;

int main() {
   map m = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            };

   // inserting new element
   m.insert(pair('d', 4));
   m.insert(pair('e', 5));

   cout << "Map contains following elements" << endl;

   for (auto it = m.begin(); it != m.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   return 0;
}

输出:

Map contains following elements
a = 1
b = 2
c = 3
d = 4
e = 5

在上面的示例中,它只是插入具有给定键值对的元素。

例子2

让我们看一个简单的示例,将元素插入指定位置:

#include 
#include 

using namespace std;

int main(void) {
   map m = {
            {'b', 2},
            {'c', 3},
            {'d', 4},
            };

   //inserting element with the given position
   m.insert(m.begin(), pair('a', 1));  
   m.insert(m.end(), pair('e', 5));

   cout << "Map contains following elements" << endl;

   for (auto it = m.begin(); it != m.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   return 0;
}

输出:

Map contains following elements
a = 1
b = 2
c = 3
d = 4
e = 5

在上面的示例中,将元素插入到定义的位置,即在开始元素{‘a’,1}中插入元素,在结束元素{‘e’,5}中插入元素。

例子3

让我们看一个简单的示例,将一个地图的元素插入另一个地图。

#include 
#include 

using namespace std;

int main() {
   
   map m1 = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            {'d', 4},
            {'e', 5},
            };

map m2;  // creating new map m2
m2.insert(m1.begin(), m1.end());   //inserting the elements of m1 to m2 from begin to end

   cout << "Map contains following elements" << endl;

   for (auto it = m2.begin(); it != m2.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   return 0;
}

输出:

Map contains following elements
a = 1
b = 2
c = 3
d = 4
e = 5

在上面的示例中,映射m1具有五个元素,而映射m2为空。 insert()函数用于从m1的开头到m1的结尾插入m1到m2的元素,并显示m2映射的内容。

例子4

让我们看一个插入元素的简单示例。

#include 
#include 

using namespace std;

int main(void) {
   map m = {
            {1, "Java"},
            {2, "C++"},
            {3, "SQL"},
            };

   m.insert({{4,"VB"}, {5, "Oracle"}});

   cout << "Map contains following elements" << endl;

   for (auto it = m.begin(); it != m.end(); ++it)
      cout << it->first << " : " << it->second << endl;

   return 0;
}

输出:

Map contains following elements
1 : Java
2 : C++
3 : SQL
4 : VB
5 : Oracle

在上面的示例中,使用了另一种形式的insert()函数将元素插入到地图中。