21xrx.com
2025-03-28 18:57:02 Friday
文章检索 我的文章 写文章
C++如何将两个容器合并?
2023-07-05 11:30:42 深夜i     24     0
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()`函数将其他类型的容器合并成有序序列。

  
  

评论区