c++ vector合并
时间: 2025-01-03 11:34:32 浏览: 8
### C++ 中合并两个 `vector` 的方法
当涉及到合并两个已排序的 `vector<int>` 时,可以采用多种方式实现这一目标。一种简单而有效的方式是先将第二个向量的所有元素添加到第一个向量中,随后调用标准库提供的 `std::sort()` 函数来重新排列这些元素。
下面是一个具体的例子:
```cpp
#include <algorithm>
#include <iostream>
#include <vector>
class Solution {
public:
void merge(std::vector<int>& nums1, int m, std::vector<int>& nums2, int n) {
for (int i = 0; i != n; ++i) {
nums1[m + i] = nums2[i];
}
std::sort(nums1.begin(), nums1.end());
}
};
// 测试代码如下所示:
void test_merge() {
std::vector<int> nums1{1, 2, 3, 0, 0, 0};
int m = 3;
std::vector<int> nums2{2, 5, 6};
int n = 3;
Solution solution;
solution.merge(nums1, m, nums2, n);
// 打印结果验证正确性
for (auto num : nums1) {
std::cout << num << " ";
}
}
```
上述程序展示了如何定义一个名为 `merge` 的成员函数[^1],该函数接收四个参数:待修改的第一个动态数组及其实际长度;以及另一个要被加入其中的静态数组连同其大小。通过遍历操作把来自 `nums2` 的数据项逐一放置于 `nums1` 尾部预留的空间内,并最终利用 STL 提供的功能完成升序整理工作。
值得注意的是,在此案例里假设输入的 `nums1` 已经预分配了足够的空间用于容纳额外插入的数据点。如果不确定这一点,则应在执行任何写入动作之前确保有足够的容量可用。
阅读全文