删除一个vector中前一半的元素
时间: 2023-09-28 17:13:42 浏览: 50
要删除 `std::vector` 中前一半的元素,可以使用 `erase` 函数结合迭代器来实现。下面是一个示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 计算要删除的元素数量
int eraseCount = nums.size() / 2;
// 删除前一半元素
nums.erase(nums.begin(), nums.begin() + eraseCount);
// 输出剩余的元素
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在示例中,我们创建了一个 `std::vector` 对象 `nums` 并初始化它。然后,计算需要删除的元素数量,这里使用了 `nums.size() / 2` 来计算前一半元素的数量。接下来,使用 `erase` 函数来删除前一半元素,通过指定删除范围为 `[nums.begin(), nums.begin() + eraseCount)` 来实现。最后,使用循环输出剩余的元素。
输出结果为:
```
6 7 8 9 10
```
这表示前一半的元素已经被成功删除,剩余的元素为 6、7、8、9 和 10。