vector<float> 切片
时间: 2023-08-12 16:03:32 浏览: 130
切片
在 C++ 中,可以使用 `std::vector` 的 `std::vector::begin()` 和 `std::vector::end()` 方法来获取迭代器,然后使用迭代器的 `std::next()` 方法进行切片操作。例如,要获取 `v` 向量中从第 3 个元素到第 5 个元素的切片,可以使用以下代码:
```
std::vector<float> v = {1.0, 2.0, 3.0, 4.0, 5.0};
auto first = std::next(v.begin(), 2); // 第3个元素的迭代器
auto last = std::next(v.begin(), 5); // 第6个元素的迭代器
std::vector<float> slice(first, last);
```
在上面的代码中,`std::next(v.begin(), 2)` 返回的是一个指向第 3 个元素的迭代器,因为 `v.begin()` 返回的是指向第 1 个元素的迭代器,所以需要使用 `std::next()` 方法移动两个位置。同理,`std::next(v.begin(), 5)` 返回的是指向第 6 个元素的迭代器,所以实际获取的是前 5 个元素的切片。最后,将切片赋值给一个新的 `std::vector` 对象即可。
阅读全文