📜  C++ STL中的list merge()函数

📅  最后修改于: 2021-05-30 14:09:37             🧑  作者: Mango

list :: merge()是C++ STL中的内置函数,它将两个排序后的列表合并为一个。列表应按升序排序。如果没有在参数中传递比较器,则它将两个排序列表合并为一个排序列表。如果在参数中传递了比较器,则它将合并列表,从而进行内部比较。

  1. 句法:
    list1_name.merge(list2_name)
    

    参数:该函数接受一个强制性参数list2_name ,该参数指定要合并到list1中的列表。

    返回值:该函数不返回任何内容

    以下程序演示了该函数:

    程序1:

    // program below demonstrates the
    // merge function in c++
    #include 
    using namespace std;
      
    int main()
    {
        // declaring the lists
        // initially sorted
        list list1 = { 10, 20, 30 };
        list 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。
    • 比较器–比较器–它是一个二进制谓词,它采用与列表中包含的值相同类型的两个值,如果认为第一个参数以其定义的严格弱顺序在第二个参数之前,则返回true,否则返回false。

    返回值:该函数不返回任何内容

    // program below demonstrates the
    // merge function in c++
    #include 
    using namespace std;
      
    // comparator which compares elements internally
    bool comparator(int first, int second)
    {
        return first < second;
    }
    int main()
    {
        // declaring the lists
        list list1 = { 1, 70, 80 };
        list 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
    
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”