c++ vector a 添加到vector b里
时间: 2024-07-27 20:01:08 浏览: 47
在 C++ 中,如果你想将 `vector` A 的元素添加到另一个 `vector` B 中,有几种常用的方法:
1. **直接插入**:
```cpp
for (const auto& element : a) {
b.push_back(element);
}
```
这种方式通过遍历 vector A 并逐个将元素插入到 vector B 的末尾。
2. **利用范围基础for循环**:
如果 vector A 和 B 都是同类型的容器,可以使用 range-based for 循环简化代码:
```cpp
b.insert(b.end(), a.begin(), a.end());
```
这会将 A 中的所有元素复制到 B 的末尾。
3. **如果需要保留原顺序**:
如果希望保持 A 中元素的原有顺序,可以使用 std::move 或 std::copy 结合 std::insert:
```cpp
for (size_t i = 0; i < a.size(); ++i) {
b.insert(b.begin() + i, std::move(a[i])); // 或者用 std::copy
}
```
注意这里使用了 `std::move` 来提高效率,因为它移动数据而不是复制。
4. **使用 push_back_range** (C++20 及以后):
如果你使用 C++20 或更新版本,可以直接使用 `push_back_range` 函数:
```cpp
b.push_back_range(a);
```
无论哪种方法,都要确保操作前检查 vector B 是否有足够的空间容纳 A 中的所有元素,避免溢出。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)