remove_range c++
时间: 2024-09-09 10:09:36 浏览: 41
`remove_range` 是 C++ 标准库中的一个算法,它可以从一个序列中删除指定范围内的元素。该算法定义在 `<algorithm>` 头文件中。
`remove_range` 算法接受两个迭代器(指向序列的起始位置和结束位置)以及一个可选的第三个迭代器(用于指定要删除的元素的范围)。它会遍历指定范围内的元素,并将它们从序列中删除。
以下是 `remove_range` 算法的基本用法示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
// 从索引位置 3 到索引位置 7 的元素将被删除
auto it = std::remove_range(nums.begin(), nums.begin() + 3, nums.begin() + 7);
// 将修改后的向量赋值回原向量
nums = std::vector<int>(it, nums.end());
// 输出修改后的向量
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:`1 2 4 5 6 8 9`,即从索引位置 3 到索引位置 7 的元素被成功删除。
需要注意的是,`remove_range` 算法会修改原序列,并将修改后的元素重新赋值回原序列。如果不需要修改原序列,可以在使用算法之前先复制一份序列。另外,`remove_range` 只删除指定范围内的元素,并不会更改其他元素的顺序。
阅读全文