gpt4 book ai didi

c++ - 在 C++ 中使用条件循环删除

转载 作者:太空狗 更新时间:2023-10-29 22:58:58 26 4
gpt4 key购买 nike

有没有更好的写法:

for (auto i = container.begin(); i != container.end();)
{
if (condition(i))
{
i = container.erase(i);
continue;
}
++i;
}

这段代码做了我想要的,但感觉风格很糟糕。

我怎样才能改进它?

我的容器是 std::map,但是一个通用的解决方案会很酷。

最佳答案

使用erase + remove_if:

auto pred = /* lambda or something*/
container.erase(std::remove_if(container.begin(),
container.end(),
pred)

关于c++ - 在 C++ 中使用条件循环删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38356875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com