📌  相关文章
📜  c++ 从列表中删除多个项目 - C++ (1)

📅  最后修改于: 2023-12-03 14:39:54.787000             🧑  作者: Mango

C++ 从列表中删除多个项目

在 C++ 中,我们可以使用 STL 中的容器来管理数据,其中 vector 是最常用的容器之一。

当我们需要从 vector 中删除多个项目时,可以使用 erase-remove idom 惯用法来提高效率。

erase-remove idom 惯用法

erase-remove idom 是 STL 中常用的惯用法,用于从容器中删除多个项目。它包括两个步骤:

  1. 使用 remove 算法将要删除的元素移到容器的末尾。
  2. 使用 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 成员函数来使用它。这可以有效地减少多次拷贝和删除操作,提高程序的效率。