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


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



描述

C++ 函數std::forward_list::merge()使用移動語義將兩個已排序的 forward_lists 合並為一個。 forward_lists 應按升序排序。

聲明

以下是 std::forward_list::merge() 函數形式 std::forward_list 頭文件的聲明。

C++11

void merge (forward_list&& x, Compare comp);

參數

  • x- 另一個相同類型的 forward_list 對象。

  • comp- 一個應該返回真或假的比較函數。它有以下原型。

bool comp(const Type1 &arg1, const Type2 &arg2);

返回值

異常

此成員函數從不拋出異常。

時間複雜度

線性,即 O(n)

示例

下麵的例子展示了 std::forward_list::merge() 函數的用法。

#include <iostream>
#include <forward_list>

using namespace std;

bool cmp_fun(int a, int b) {
   return a > b;
}

int main(void) {

   forward_list<int> fl1 = {31, 11, 5, 1};
   forward_list<int> fl2 = {30, 20, 10};

   fl2.merge(move(fl1), cmp_fun);

   cout << "List contains following elements" << endl;

   for (auto it = fl2.begin(); it != fl2.end(); ++it)
      cout << *it << endl;

   return 0;
}

讓我們編譯並運行上麵的程序,這將產生以下結果——

List contains following elements
31
30
20
11
10
5
1

相關用法


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