c++ vector拼接
时间: 2024-06-22 14:01:33 浏览: 114
在C++中,`std::vector` 是一种动态数组,提供了方便的功能来操作和管理元素集合。拼接两个或多个`vector`,你可以使用`push_back()`、`insert()`、`append()`方法或者直接使用`std::vector`的`reserve()`和`resize()`方法结合`insert()`来完成。以下是几种常见的拼接方式:
1. **使用`push_back()`**:
如果你只想逐个添加元素,可以遍历第二个向量,并将每个元素添加到第一个向量的末尾。
```cpp
std::vector<int> v1;
std::vector<int> v2;
// ... 初始化v1和v2
for (const auto& elem : v2) {
v1.push_back(elem);
}
```
2. **使用`insert()`**:
可以一次性将整个第二个向量插入第一个向量的末尾。
```cpp
v1.insert(v1.end(), v2.begin(), v2.end());
```
3. **使用`std::vector::append()`**:
这个方法是C++17引入的,适用于C++17及以后版本,直接将另一个向量的内容添加到当前向量的末尾。
```cpp
v1.append(v2.begin(), v2.end());
```
4. **使用`reserve()`和`resize()`**:
首先预估最终的大小并分配空间,然后调整大小。
```cpp
v1.reserve(v1.size() + v2.size());
v1.resize(v1.size()); // 现在可以直接添加元素了,不需要insert
```
阅读全文