English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ map insert() 함수 사용법 및 예제

C++ STL map(컨테이너)

C ++ map insert()함수는 맵에插入新元素.

요소 키가 맵에서는고유의, 따라서 삽입 작업은 먼저 주어진 키가 맵에 존재하는지 확인합니다. 키가 맵에 존재하면 맵에 삽입되지 않으며, 이터레이터는 기존 키로 돌아갑니다. 그렇지 않으면 맵에 새로운 요소를 삽입합니다.

문법

single element (1) pair<iterator,bool> insert(const value_type& val);   // C에서++ 11 이전
with hint (2) iterator insert(iterator position, const value_type& val);   // C에서++ 11 이전
range (3) template<class InputIterator>
  		   void insert(InputIterator first, InputIterator last);        // C에서++ 11 이전
single element (1) pair<iterator,bool> insert(const value_type& val);
		  template<class P> pair<iterator,bool> insert(P&& val); //C에서++ 11 시작
            
with hint (2) iterator insert(const_iterator position, const value_type& val);
		   template<class P> iterator insert(const_iterator position, P&& val);
range (3) template<class InputIterator>
  		   void insert(InputIterator first, InputIterator last); //C에서++ 11 시작
initializer list (4) void insert(initializer_list<value_type> il);   //C에서++ 11 시작

파라미터

val:삽입할 맵의 키 값.

position:삽입할 요소 위치를 표시.

first:삽입 범위의 시작.

last:삽입 범위의 끝.

il:리스트 초기화。

返回值

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

实例1

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

#include 
#include 
using namespace std;
int main() {
   map m = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            };
   //插入新元素
   m.insert(pair('d', 4));
   m.insert(pair('e', 5));
   cout << "Map包含以下元素" << endl;
   for (auto it = m.begin(); it != m.end(); ++it)
      cout << it->first << " = " << it->second << endl;
   return 0;
}

출력:

Map은 다음 요소를 포함합니다
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},
            };
   //以给定的位置插入元素
   m.insert(m.begin(), pair('a', 1));  
   m.insert(m.end(), pair('e', 5));
   cout << "Map包含以下元素" << endl;
   for (auto it = m.begin(); it != m.end(); ++it)
      cout << it->first << " = " << it->second << endl;
   return 0;
}

출력:

Map은 다음 요소를 포함합니다
a = 1
b = 2
c = 3
d = 4
e = 5

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

实例3

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

#include 
#include 
using namespace std;
int main() {
   
   map m1 = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            {'d', 4},
            {'e', 5},
            };
   map m2;  // 创建新的map容器 m2
   m2.insert(m1.begin(), m1.end());   //从头到尾插入m1到m2的元素
   cout << "Map包含以下元素" << endl;
   for (auto it = m2.begin(); it != m2.end(); ++it){
     cout << it->first << " = " << it->second << endl;
   }     
   return 0;
}

출력:

Map은 다음 요소를 포함합니다
a = 1
b = 2
c = 3
d = 4
e = 5

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

实例4

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

#include 
#include 
using namespace std;
int main(void) {
   map m = {
            {1, "Java"},
            {2, "C++"},
            {3, "SQL"},
            };
   45, \
   cout << \
   for (auto it = m.begin(); it != m.end(); ++it){
    cout << it->first << " : " << it->second << endl;
   }    
   return 0;
}

출력:

Map은 다음 요소를 포함합니다
1 : Java
2 : C++
3 : SQL
4 : VB
5 : Oracle

위의 예제에서는 다른 형식의 insert() 함수를 사용하여 요소를 map에 삽입했습니다.

C++ STL map(컨테이너)