快速历遍vector并删除元素
时间: 2024-12-29 21:06:42 浏览: 5
在C++中,如果你想快速地遍历`std::vector`并删除特定元素,通常的做法不是直接在循环里删除,因为这会改变容器大小,导致后续元素移动,效率较低。更推荐的做法是先创建一个新的`vector`,只包含你不希望删除的元素,然后用新`vector`替换原`vector`。下面是一个示例:
```cpp
#include <vector>
void removeElements(std::vector<int>& vec, int value) {
std::vector<int> filteredVec;
for (int element : vec) {
if (element != value) {
filteredVec.push_back(element);
}
}
vec = filteredVec; // 或者 vec.swap(filteredVec),避免不必要的复制
}
```
在这个例子中,`filteredVec`是一个新的`vector`,我们遍历`vec`,如果元素不等于`value`,就添加到`filteredVec`中。最后,将`filteredVec`的内容赋值给原`vec`。
阅读全文