C ++ List merge()函数以升序合并两个排序的列表。它将y列表合并到给定的列表容器中,这将从y中删除所有元素。
如果未在参数中传递比较器,则将两个排序后的列表合并为一个列表。
如果在参数中传递了比较器,则列表将根据其内部比较进行合并。
两个列表list1和list2。语法为:
list1.merge(list2); list1.merge(list2,compare);
list2:要与list1合并的列表。
compare:这是一个比较函数对象,用于将第一个参数的值与第二个参数的值进行比较。如果第一个参数的值小于第二个参数,则返回true,否则返回false。
它不返回任何值。
让我们看一个简单的实例
#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与列表li1合并到一个列表中。
让我们看一个简单的实例,当比较器传入参数时
#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()函数根据内部比较合并列表。