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


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


list::merge()是C++ STL中的內置函數,它將兩個排序的列表合並為一個。列表應按升序排序。如果沒有在參數中傳遞比較器,則它將兩個排序列表合並為一個排序列表。如果在參數中傳遞了比較器,則它將合並列表,從而進行內部比較。

  1. 用法:
    list1_name.merge(list2_name)
    

    參數:該函數接受一個強製性參數list2_name,該參數指定要合並到list1中的列表。

    返回值:該函數不返回任何東西


    以下程序演示了該函數:

    示例1:

    // program below demonstrates the 
    // merge function in c++ 
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
        // declaring the lists 
        // initially sorted 
        list<int> list1 = { 10, 20, 30 }; 
        list<int> list2 = { 40, 50, 60 }; 
      
        // merge operation 
        list2.merge(list1); 
      
        cout << "List:  "; 
      
        for (auto it = list2.begin(); it != list2.end(); ++it) 
            cout << *it << " "; 
      
        return 0; 
    }
    輸出:
    List:  10 20 30 40 50 60
    
  2. 用法:
    list1_name.merge(list2_name, comparator)
    

    參數:該函數接受以下兩個參數:

    • list2-name –它指定要在list1中合並的list2。
    • comparator –它是一個二進製謂詞,它采用與列表中包含的值相同類型的兩個值,如果認為第一個參數以其定義的嚴格弱順序在第二個參數之前,則返回true,否則返回false。

    返回值:該函數不返回任何東西

    // program below demonstrates the 
    // merge function in c++ 
    #include <bits/stdc++.h> 
    using namespace std; 
      
    // comparator which compares elements internally 
    bool comparator(int first, int second) 
    { 
        return first < second; 
    } 
    int main() 
    { 
        // declaring the lists 
        list<int> list1 = { 1, 70, 80 }; 
        list<int> list2 = { 2, 3, 4 }; 
      
        // merge operation 
        list1.merge(list2, comparator); 
      
        cout << "List: "; 
      
        for (auto it = list1.begin(); it != list1.end(); ++it) 
            cout << *it << " "; 
      
        return 0; 
    }
    輸出:
    List: 1 2 3 4 70 80
    


相關用法


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