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

Utilizzo e esempio del metodo insert() della funzione map in C++

STL map(容器)C++

C++ map insert()la funzione utilizzata per inserire un nuovo elemento nel mapinserimento di un nuovo elemento.

poiché l'elemento chiave nel map èunicoper cui l'operazione di inserimento verifica prima se la chiave fornita esiste già nel map, se la chiave esiste già nel map, non verrà inserita nel map e l'iteratore itererà fino a tornare alla chiave esistente, altrimenti verrà inserito un nuovo elemento nel map.

sintassi

singolo elemento (1) pair<iterator,bool> insert(const value_type& val); // prima di C++ 11
con suggerimento (2) iterator insert(iterator position, const value_type& val); //prima della C++ 11
intervallo (3) template<class InputIterator>
  		   void insert(InputIterator first, InputIterator last); //prima della C++ 11
elemento singolo (1) pair<iterator, bool> insert(const value_type& val);
		  template<class P> pair<iterator, bool> insert(P&& val); //dalla C++ 11
            
con suggerimento (2) iterator insert(const_iterator position, const value_type& val);
		   template<class P> iterator insert(const_iterator position, P&& val);
intervallo (3) template<class InputIterator>
  		   void insert(InputIterator first, InputIterator last); //dalla C++ 11
initializer list (4) void insert(initializer_list<value_type> il); //dalla C++ 11

Parametro

val:chiave e valore da inserire nella mappa.

position:posizione da inserire l'elemento.

first:inizio dell'intervallo da inserire.

last:fine dell'intervallo da inserire.

il:inizializzazione della lista.

Valore di ritorno

Restituisce un pair<bool, iterator> per indicare se l'inserimento è avvenuto e restituisce un iterator al nuovo elemento inserito.

Esempio 1

Ecco un esempio semplice di inserimento di elementi in una mappa.

#include <iostream>
#include <map>
using namespace std;
int main() {
   map<char, int> m = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            };
   //inserimento di un nuovo elemento
   m.insert(pair<char, int>('d', 4));
   m.insert(pair<char, int>('e', 5));
   cout << "La mappa contiene i seguenti elementi" << 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

Nell'esempio sopra, viene inserito semplicemente un elemento con il pair di chiave valore dato.

Esempio 2

Vediamo un esempio semplice di inserimento di elementi in posizioni specifiche:

#include <iostream>
#include <map>
using namespace std;
int main(void) {
   map<char, int> m = {
            {'b', 2},
            {'c', 3},
            {'d', 4},
            };
   // Inserisci gli elementi al posto dato
   m.insert(m.begin(), pair<char, int>('a', 1));  
   m.insert(m.end(), pair<char, int>('e', 5));
   cout << "La mappa contiene i seguenti elementi" << 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

Nell'esempio sopra, gli elementi vengono inseriti nei posti definiti, ovvero nell'elemento iniziale {'a', 1} e nell'elemento finale {'e', 5}.

Esempio 3

Vediamo un esempio semplice di inserimento di elementi di una mappa in un'altra mappa.

#include <iostream>
#include <map>
using namespace std;
int main() {
   
   map<char, int> m1 = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            {'d', 4},
            {'e', 5},
            };
   map<char, int> m2; // Crea una nuova cerniera m2
   m2.insert(m1.begin(), m1.end()); // Inserisci gli elementi da m1 a m2 dall'inizio alla fine
   cout << "La mappa contiene i seguenti elementi" << 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

Nell'esempio sopra, la cerniera m1 ha cinque elementi, mentre la cerniera m2 è vuota. La funzione insert() viene utilizzata per inserire gli elementi da m1 all'inizio a m1 alla fine in m2 e visualizzare il contenuto della cerniera m2.

Esempio 4

Vediamo un semplice esempio di inserimento di elementi.

#include <iostream>
#include <map>
using namespace std;
int main(void) {
   map<int, string> m = {
            {1, "Java"},
            {2, "C++"},
            {3, "SQL"},
            };
   m.inserisci({{4,"VB"}, {5, "Oracle"}});
   cout << "Map 包含以下元素" << endl;
   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中。

STL map(容器)C++