当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。