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ù)對(duì)象,用于將第一個(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)部比較合并列表。