Avatar ·

如何按索引从 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`?如果索引越界会怎样?如何正确处理错误?希望能有带示例的详细解释。