vector删除i位置的元素
时间: 2024-09-21 11:12:13 浏览: 39
在C++标准库`std::vector`中,如果你想删除指定位置的元素,通常你需要先检查该位置是否合法(不会越界),然后可以使用`erase`函数来移除元素。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5}; // 初始化一个整数向量
int i = 2; // 想要删除的位置
if (i >= 0 && i < vec.size()) { // 验证索引是否有效
vec.erase(vec.begin() + i); // 使用迭代器从适当位置开始删除
std::cout << "After deletion at position " << i << ", the vector is: ";
for (const auto &element : vec) {
std::cout << element << " ";
}
} else {
std::cout << "Invalid index! Cannot delete an element at that position." << std::endl;
}
return 0;
}
```
在这个例子中,如果`i`是有效的,`erase`会删除`vec`的第一个元素(索引从0开始计数)直到第一个大于等于`i`的元素。注意,`erase`改变了`vector`的大小,所以不需要显式地更新其他元素。
阅读全文