이 기사에서는 C++에서 forward_list::merge() 함수의 작동, 구문 및 예제에 대해 논의할 것입니다.
STL의 Forward_list란 무엇입니까?
순방향 목록은 시퀀스 내 어디에서나 일정한 시간 삽입 및 지우기 작업을 허용하는 시퀀스 컨테이너입니다. 순방향 목록은 단일 연결 목록으로 구현됩니다. 순서는 시퀀스의 다음 요소에 대한 링크의 각 요소에 대한 연결에 의해 유지됩니다.
forward_list::merge()란 무엇입니까?
forward_list::merge()는 헤더 파일에 선언된 C++ STL의 내장 함수입니다. merge()는 두 개의 정렬된 forward_list를 하나로 병합하는 데 사용됩니다.
두 목록을 병합하기 전에 목록이 정렬된 순서인지 확인해야 합니다. 비교기가 전달되지 않으면 두 목록을 하나의 정렬된 목록으로 병합합니다. 두 목록 간의 내부 비교도 원할 때 비교자를 추가해야 합니다.
구문
flist_container1.merge(flist_container2); //will merge both lists flist_container1.merge(flist_container2, comparator);
이 함수는 하나 또는 두 개의 매개변수를 받아들일 수 있습니다 -
매개변수
-
list_container2 - 병합할 두 번째 목록의 개체입니다.
-
비교기 - 내부 비교를 정의합니다. 이것은 목록 컨테이너에 정의된 것과 동일한 값의 두 입력을 포함하는 이진 술어입니다. list_container1 요소가 list_container2보다 먼저 가는 것으로 간주되면 true를 반환하고 그렇지 않으면 false가 됩니다.
반환 값
이 함수는 아무 것도 반환하지 않습니다.
예시
/*아래 코드에서 우리는 두 개의 정방향 목록을 만들고 둘 다 정렬되며 작업은 정렬되어야 하는 C++의 merge() 함수를 사용하여 병합하는 것입니다*/
#include <bits/stdc++.h> using namespace std; int main() { //creating forward list by inserting sorted values forward_list<int> myForwardList1 = { 1, 3, 5, 7 }; forward_list<int> myForwardList2 = { 2, 4, 6 }; // merging two sorted forward lists myForwardList1.merge(myForwardList2); cout << "elements after merging" << endl; for (auto i = myForwardList1.begin(); i != myForwardList1.end(); ++i) cout << *i << " "; return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다.
elements after merging 1 2 3 4 5 6 7
비교기 사용
예시
/*아래 코드에서는 두 개의 정방향 목록을 만들고 둘 다 정렬되지 않았으며 작업은 먼저 목록을 정렬한 다음 C++에서 merge() 함수를 사용하여 병합하고 정렬해야 합니다.*/
#include <bits/stdc++.h> using namespace std; int main (){ //create unsorted forward list forward_list<int> myForwardList1 = {3, 2, 9}; forward_list<int> myForwardList2 = {8, 1, 2}; //sorting the forward list using sort() function myForwardList1.sort(); myForwardList2.sort(); myForwardList1.merge(myForwardList2); cout << "Elements after merging" << endl; for (auto i = myForwardList1.begin(); i != myForwardList1.end(); ++i) cout << *i << " "; return 0; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다.
Elements after merging 1 2 2 3 8 9