21xrx.com
2024-12-22 21:26:10 Sunday
登录
文章检索 我的文章 写文章
C++如何将两个容器合并?
2023-07-05 11:30:42 深夜i     --     --
C++ 容器 合并

C++中可以使用STL标准库中的`std::merge()`函数将两个容器合并为一个有序序列。

`std::merge()`函数的语法如下:


template<class InputIt1, class InputIt2, class OutputIt>

OutputIt merge(InputIt1 first1, InputIt1 last1,

        InputIt2 first2, InputIt2 last2,

        OutputIt d_first);

该函数需要四个迭代器参数:

- first1和last1指定第一个容器的起始和终止位置;

- first2和last2指定第二个容器的起始和终止位置;

- d_first指定合并后序列的起始位置。

`std::merge()`函数可以合并任意类型的容器,包括vector、list、array等,只需保证容器中元素类型支持排序操作即可。

下面是一个示范代码,展示如何将两个vector容器合并为一个有序序列:


#include <iostream>

#include <vector>

#include <algorithm>

int main()

{

  // 定义两个有序vector容器

  std::vector<int> a = 3;

  std::vector<int> b = 6;

  // 定义一个新的vector容器用来存储合并后的序列

  std::vector<int> c(a.size() + b.size());

  // 合并a和b,并将结果存储到c中

  std::merge(a.begin(), a.end(), b.begin(), b.end(), c.begin());

  // 打印合并后的序列

  std::cout << "合并后的序列:" << std::endl;

  for (auto i : c)

  

    std::cout << i << " ";

  

  std::cout << std::endl;

  return 0;

}

运行结果为:


合并后的序列:

1 2 3 4 5 6 7 8

通过对示范代码的修改,你可以使用`std::merge()`函数将其他类型的容器合并成有序序列。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复