如何按索引从 C++ 的 std::vector 中删除元素?
大家好!我是 C++ 新手,在使用 std::vector 时遇到了问题。我需要按索引删除元素,但找不到正确的方法。
这是我的代码:
```cpp
#include
#include
int main() {
std::vector numbers = {10, 20, 30, 40, 50};
int index_to_remove = 2; // 想删除元素 30
// 尝试使用 erase,但不知道如何传递索引
// numbers.erase(index_to_remove); // 编译错误
// 尝试通过 iterator
numbers.erase(numbers.begin() + index_to_remove);
for (int n : numbers) {
std::cout << n << " ";
}
// 期望:10 20 40 50,但代码崩溃或行为异常
return 0;
}
```
我读了文档,但还是困惑。为什么 `erase` 不接受一个数字?是否总是需要使用 `begin() + index`?如果索引越界会怎样?如何正确处理错误?希望能有带示例的详细解释。