English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ List merge() 함수는 두 개의 정렬된 리스트를 오름차순으로 합칩니다. 이는 y 리스트를 주어진 리스트 컨테이너에 합치고, y에서 모든 요소를 제거합니다.
비교기가 전달되지 않으면, 두 개의 정렬된 리스트를 하나의 리스트로 합칩니다.
비교기가 파라미터에 전달되면, 리스트는 내부 비교에 따라 합쳐집니다.
두 개의 리스트 list1와 list2。문법은 다음과 같습니다:
list1.merge(list2); list1.merge(list2, compare);
list2:list와1합친 리스트
compare:이는 두 번째 파라미터의 값을 비교하는 함수 객체입니다. 첫 번째 파라미터의 값이 두 번째 파라미터의 값보다 작으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
그것은 어떤 값도 반환하지 않습니다.
간단한 예제를 보겠습니다.
#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; }
출력:
1 2 3 4 5 6 7 8
이 예제에서 merge() 함수는 리스트 li와 리스트 li를 합칩니다.1리스트에 합쳐집니다.
자신이 비교기자를 전달할 때 간단한 예제를 보겠습니다.
#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; }
출력:
5 6 7 9 10 11 15
이 예제에서 merge() 함수는 내부 비교에 따라 목록을 병합합니다.