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

Corso di base C++

Controllo di flusso C++

Funzione in C++

Array e stringhe C++

Strutture dati C++

Classi e oggetti C++

Puntatore in C++

Ereditarietà in C++

Corso di STL in C++

Manuale di riferimento C++

Utilizzo e esempio della funzione merge() di C++ List

List (lista) in C++

La funzione merge() di C++ List combina due elenchi ordinati in ordine crescente. Combina l'elenco y nel contenitore dell'elenco dato, eliminando tutti gli elementi da y.

Possono verificarsi due casi nella funzione di combinazione merge():

Se non viene passato un comparatore come parametro, due elenchi ordinati vengono combinati in un elenco.

Se viene passato un comparatore come parametro, l'elenco viene combinato in base alla comparazione interna.

Sintassi

Due elenchi list1 e list2. La sintassi è:

list1.merge(list2);
list1.merge(list2, compare);

Parametro

list2: Elenco da combinare con list1.

compare: Questo è un oggetto funzione di confronto utilizzato per confrontare il valore del primo parametro con il valore del secondo parametro. Se il valore del primo parametro è minore del valore del secondo parametro, viene restituito true, altrimenti viene restituito false.

Valore di ritorno

Non restituisce alcun valore.

Esempio 1

Lasciamo vedere un esempio semplice

#include <iostream>
#include<list>
using namespace std;
int main()
{
   list<int> li = {1, 2, 3, 4};
   list<int> li1 = {5, 6, 7, 8};
   li.merge(li1);
   for(list<int>::iterator itr=li.begin();itr!=li.end();++itr){
       std::cout << *itr << " \t " << std::endl;  
   }   
   return 0;
}

Output:

1 2 3 4 5 6 7 8

In questo esempio, la funzione merge() combina l'elenco li con l'elenco li1 in un elenco.

Esempio 2

Lasciamo vedere un esempio semplice quando viene passato un comparatore come parametro

#include <iostream>
#include<list>
using namespace std;
bool comparison(int first, int second)
{
    bool a;
    a = first < second;
    return (a);
}
int main()
{
  list<int> li={9,10,11};
  list<int> li1={5,6,7,15};
  li.merge(li1,comparison);
  for(list<int>::iterator itr=li.begin();itr!=li.end();++itr){
      std::cout << *itr << " " << std::endl;
  }  
  return 0;
}

Output:

5 6 7 9 10 11 15

In questo esempio, la funzione merge() combina la lista in base alla comparazione interna.

List (lista) in C++