English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ A função List merge() combina duas listas ordenadas em ordem crescente. Ela combina a lista y na lista contêiner dada, removendo todos os elementos da lista y.
Se o comparador não for passado como parâmetro, duas listas ordenadas serão combinadas em uma lista.
Se o comparador for passado como parâmetro, a lista será combinada com base na comparação interna.
duas listas list1e lista2。A sintaxe é:
lista1.merge(list2); lista1.merge(list2,compare);
lista2: para combinar com a lista1lista combinada.
compare: Este é um objeto de função de comparação, usado para comparar o valor do primeiro parâmetro com o valor do segundo parâmetro. Se o valor do primeiro parâmetro for menor que o valor do segundo parâmetro, retornará true, caso contrário, retornará false.
ele não retorna nenhum valor.
Vamos olhar um exemplo simples
#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 << " " << std::endl; } return 0; }
Saída:
1 2 3 4 5 6 7 8
Neste exemplo, a função merge() combina a lista li com a lista li1combinação em uma lista.
Vamos olhar um exemplo simples, quando o comparador é passado como parâmetro
#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; }
Saída:
5 6 7 9 10 11 15
Neste exemplo, a função merge() combina listas com base na comparação interna.