c++ 两个vector合并
时间: 2023-10-30 11:05:52 浏览: 110
你可以使用`std::vector`的`insert`函数将一个向量合并到另一个向量中。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = {4, 5, 6};
v1.insert(v1.end(), v2.begin(), v2.end());
std::cout << "合并后的向量:";
for (const auto& num : v1) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
上述代码中,我们将`v2`合并到了`v1`中,`insert`函数的参数是合并的起始位置和结束位置。输出将会是`1 2 3 4 5 6`。
相关问题
C++ 合并两个 vector
可以使用 `std::vector` 的 `insert` 方法将一个 vector 插入到另一个 vector 中,示例代码如下:
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2 = {4, 5, 6};
vec1.insert(vec1.end(), vec2.begin(), vec2.end());
for (const auto& elem : vec1) {
std::cout << elem << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5 6
```
在上述代码中,我们首先创建了两个 `std::vector<int>` 对象 `vec1` 和 `vec2`,然后使用 `vec1.insert(vec1.end(), vec2.begin(), vec2.end())` 将 `vec2` 插入到 `vec1` 的末尾。最后使用一个循环遍历输出合并后的结果。
C++中vector合并另一个vector
在C++中,有多种方法可以高效地合并两个`vector`:
1. **使用`std::merge`**[^1]
```cpp
#include <algorithm>
std::vector<int> vec1;
std::vector<int> vec2;
// 假设vec1已经存在
vec1.insert(vec1.end(), vec2.begin(), vec2.end());
```
这种方法利用了`<algorithm>`库中的`std::merge`,它会保留两个向量的顺序。
2. **使用`std::vector::insert`**
```cpp
// 假设vec1已经存在
vec1.reserve(vec1.size() + vec2.size()); // 先预分配空间以避免频繁扩容
vec1.insert(vec1.end(), vec2.begin(), vec2.end());
```
`insert`函数可以在指定位置插入元素,这里直接在`vec1`的末尾插入`vec2`的所有元素。
这两种方法都可以有效避免创建新的临时存储区,从而提高效率。选择哪种取决于具体需求,如对顺序是否有特殊要求或者性能优化的需求。
阅读全文