當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ List merge()用法及代碼示例


C++ List merge() 函數以遞增的順序合並兩個已排序的列表。它將 y 列表合並到給定的列表容器中,並從 y 中刪除所有元素。

合並 function() 會出現兩種情況:

如果未在參數中傳遞比較器,則將兩個排序列表合並為一個。

如果在參數中傳遞了比較器,則列表將根據它們的內部比較進行合並。

用法

考慮兩個列表 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() 函數根據內部比較合並列表。





相關用法


注:本文由純淨天空篩選整理自 C++ List merge()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。