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


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


forward_list::merge()是C++ STL中的內置函數,它將兩個排序的forward_lists合並為一個。
merge()函數可以通過兩種方式使用:

  1. 將兩個按升序排序的前向列表合並為一個。
  2. 使用比較函數將兩個轉發列表合並為一個。

用法:

forwardlist_name1.merge(forward_list& forwardlist_name2)
                  or
forwardlist_name1.merge(forward_list& forwardlist_name2, Compare comp)

參數:該函數接受兩個指定如下的參數:


  1. forwardlist_name2–將要合並的另一個相同類型的前向列表
  2. comp–比較函數,應返回true或false。

返回值:該函數不返回任何內容。
以下示例程序旨在說明上述函數:
示例1:

// CPP program to illustrate the 
// forward_list::merge() function 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
    forward_list<int> fl1 = { 12, 25, 31, 41 }; 
    forward_list<int> fl2 = { 10, 20, 30 }; 
  
    // merge two forward list 
    fl1.merge(fl2); 
  
    // print the contents of the forward list 
    cout << "List contains following elements" << endl; 
    for (auto it = fl1.begin(); it != fl1.end(); ++it) 
        cout << *it << " "; 
  
    return 0; 
}
輸出:
List contains following elements
10 12 20 25 30 31 41


示例2:

#include <bits/stdc++.h> 
using namespace std; 
  
// comparison function 
bool cmp_fun(int a, int b) 
{ 
    return a > b; 
} 
  
int main() 
{ 
    forward_list<int> fl1 = { 41, 31, 25, 12 }; 
    forward_list<int> fl2 = { 30, 20, 10 }; 
  
    // merge two forward list 
    fl1.merge(fl2, cmp_fun); 
  
    // print the contents of the forward list 
    cout << "List contains following elements" << endl; 
    for (auto it = fl1.begin(); it != fl1.end(); ++it) 
        cout << *it << " "; 
  
    return 0; 
}
輸出:
List contains following elements
41 31 30 25 20 12 10


相關用法


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