将vector中前十个拷贝到另外一个vector中
时间: 2024-09-15 17:08:23 浏览: 22
在C++中,如果你有一个`std::vector<T>`容器并且想要复制其中的前十个元素到另一个`std::vector<T>`中,你可以使用以下几种方法:
1. **直接赋值** (如果目标容器足够大)
```cpp
std::vector<T> source;
// ...填充source
std::vector<T> dest(source.begin(), source.begin() + 10); // 复制前十个元素
```
这里我们通过切片技术复制了源向量的前十个元素到dest向量。
2. **循环复制**
```cpp
std::vector<T> source;
// ...填充source
std::vector<T> dest;
for (size_t i = 0; i < 10 && i < source.size(); ++i) {
dest.push_back(source[i]); // 直接添加到dest
}
```
这种方法适用于无法预知目标容量的情况。
3. **使用算法** (如`std::copy`)
```cpp
std::vector<T> source;
// ...填充source
std::vector<T> dest(10); // 创建一个刚好能存放10个元素的向量
std::copy(source.begin(), source.begin() + 10, std::back_inserter(dest)); // 把前十个元素复制到dest
```
`std::back_inserter`会自动调整dest的大小,直到容纳所有元素。
阅读全文