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

C++ List merge() 사용법 및 예제

C++ List(리스트)

C ++ List merge() 함수는 두 개의 정렬된 리스트를 오름차순으로 합칩니다. 이는 y 리스트를 주어진 리스트 컨테이너에 합치고, y에서 모든 요소를 제거합니다.

merge() 함수 merge()에서 가능한 두 가지 상황이 있습니다:

비교기가 전달되지 않으면, 두 개의 정렬된 리스트를 하나의 리스트로 합칩니다.

비교기가 파라미터에 전달되면, 리스트는 내부 비교에 따라 합쳐집니다.

문법

두 개의 리스트 list1와 list2。문법은 다음과 같습니다:

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

파라미터

list2:list와1합친 리스트

compare:이는 두 번째 파라미터의 값을 비교하는 함수 객체입니다. 첫 번째 파라미터의 값이 두 번째 파라미터의 값보다 작으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

반환 값

그것은 어떤 값도 반환하지 않습니다.

예제1

간단한 예제를 보겠습니다.

#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리스트에 합쳐집니다.

예제2

자신이 비교기자를 전달할 때 간단한 예제를 보겠습니다.

#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() 함수는 내부 비교에 따라 목록을 병합합니다.

C++ List(리스트)