C ++ List merge()函数
C ++列表 merge()函数按增量顺序合并两个已排序列表。它将y列表合并到给定的列表容器中,并从中删除所有元素。
合并函数中可能发生两种情况
如果未在参数中传递比较器,则将两个排序列表合并为一个。
如果在参数中传递了比较器,则根据它们的内部比较来合并列表。
语法
考虑两个列表list1和list2。 语法如下:
list1.merge(list2);
list1.merge(list2,compare);
参数
list2 :要与list1合并的列表。
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<<? ?;
return 0;
}
输出:
1 2 3 4 5 6 7 8
在这个示例中,merge()函数将列表li与列表li1合并为一个列表。
示例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()函数基于内部比较合并列表。