📅  最后修改于: 2023-12-03 14:39:54.787000             🧑  作者: Mango
在 C++ 中,我们可以使用 STL 中的容器来管理数据,其中 vector
是最常用的容器之一。
当我们需要从 vector
中删除多个项目时,可以使用 erase-remove
idom
惯用法来提高效率。
erase-remove
idom
惯用法erase-remove
idom
是 STL 中常用的惯用法,用于从容器中删除多个项目。它包括两个步骤:
remove
算法将要删除的元素移到容器的末尾。erase
成员函数将位于末尾位置的元素从容器中删除。这个惯用法可以有效地减少多次拷贝和删除操作,提高程序的效率。
下面是一个使用 erase-remove
idom
惯用法删除 vector
中所有偶数的例子:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
vec.erase(std::remove_if(vec.begin(), vec.end(), [](int i){ return i % 2 == 0; }), vec.end());
for (const auto& i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
这个例子中,我们首先定义一个 vector
包含数字 1 到 10,并使用 remove_if
算法将所有偶数移到末尾。
然后我们使用 erase
成员函数将位于末尾位置的元素从容器中删除。
最后我们遍历容器并输出结果。
erase-remove
idom
惯用法是一个非常常用的 STL 技巧,可以帮助我们高效地删除容器中的多个项目。
我们可以结合 remove
算法和 erase
成员函数来使用它。这可以有效地减少多次拷贝和删除操作,提高程序的效率。