vector<int>删除第i个数字
时间: 2024-09-23 20:11:49 浏览: 26
C++之常见顶堆问题汇总
在 C++ 中,如果你想从 `std::vector<int>` 中删除第 i 个元素,你需要先确保 `i` 不超出容器的范围(即 `0 <= i < vector.size()`),然后你可以使用 `erase` 函数配合迭代器来完成这个操作。以下是一个示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5}; // 假设这是你的整数向量
size_t i = 2; // 想要删除的位置,这里假设为第3个位置
if (i < vec.size()) {
vec.erase(vec.begin() + i); // 使用 begin() + i 获取第 i 个元素的迭代器,然后调用 erase 删除该元素
std::cout << "Element at position " << i << " has been removed." << std::endl;
} else {
std::cout << "Index out of range." << std::endl;
}
// 打印更新后的向量
for (const auto& element : vec) {
std::cout << element << ' ';
}
return 0;
}
```
在这个例子中,如果 `i` 是有效的,那么程序会删除第 i 个元素并打印一条消息。如果 `i` 超出了范围,会输出错误信息。
阅读全文