c++拷贝vector中间连续几项到另一个vector
时间: 2024-06-19 11:01:40 浏览: 17
在C++中,你可以使用`std::copy`函数或者范围for循环来拷贝vector中的连续几项到另一个vector。这里是一个例子,假设你有一个名为`source`的vector,你想拷贝其中索引从`start_index`到`end_index`(不包括`end_index`)的元素到`destination` vector:
```cpp
#include <algorithm> // 包含std::copy
// 假设你已经定义了source和destination vector,以及start_index和end_index
size_t start_index = 2; // 从第3项开始复制
size_t end_index = 5; // 复制到第6项之前(不包括第6项)
// 使用std::copy
if (start_index < end_index && start_index < source.size() && end_index <= source.size()) {
std::copy(source.begin() + start_index, source.begin() + end_index, destination.begin());
}
// 或者使用范围for循环
// 注意:C++17及以上版本支持
// 如果你想保留源vector的顺序,需确保source和destination具有相同的容量
if (start_index < end_index && start_index < source.size()) {
for (size_t i = start_index; i < end_index; ++i) {
destination.push_back(source[i]);
}
}