C ++ List merge()函數(shù)以升序合并兩個(gè)排序的列表。它將y列表合并到給定的列表容器中,這將從y中刪除所有元素。
如果未在參數(shù)中傳遞比較器,則將兩個(gè)排序后的列表合并為一個(gè)列表。
如果在參數(shù)中傳遞了比較器,則列表將根據(jù)其內(nèi)部比較進(jìn)行合并。
兩個(gè)列表list1和list2。語法為:
list1.merge(list2); list1.merge(list2,compare);
list2:要與list1合并的列表。
compare:這是一個(gè)比較函數(shù)對象,用于將第一個(gè)參數(shù)的值與第二個(gè)參數(shù)的值進(jìn)行比較。如果第一個(gè)參數(shù)的值小于第二個(gè)參數(shù),則返回true,否則返回false。
它不返回任何值。
讓我們看一個(gè)簡單的實(shí)例
#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()函數(shù)將列表li與列表li1合并到一個(gè)列表中。
讓我們看一個(gè)簡單的實(shí)例,當(dāng)比較器傳入?yún)?shù)時(shí)
#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()函數(shù)根據(jù)內(nèi)部比較合并列表。