gpt4 book ai didi

c++ - 是否可以为每个循环删除 c++11 中 std::list 的元素

转载 作者:可可西里 更新时间:2023-11-01 16:36:27 27 4
gpt4 key购买 nike

我想对每个循环使用新的 C++11 来迭代列表的所有元素并删除某些元素。例如

std::list<int> myList;
myList.push_back(1);
myList.push_back(13);
myList.push_back(9);
myList.push_back(4);

for(int element : myList) {
if(element > 5) {
//Do something with the element

//erase the element
}else{
//Do something else with the element
}
}

是否可以使用 for each 循环来完成此操作,还是我必须返回迭代器才能实现此目的?

最佳答案

你应该能够做到这一点

myList.erase(std::remove_if(myList.begin(), myList.end(),
[](int& element)
{
return element > 5;
}
),myList.end());

或简单地(Benjamin Lindley 提供)

myList.remove_if(
[](int& element)
{
return element > 5;
}
);

关于c++ - 是否可以为每个循环删除 c++11 中 std::list 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14304950/

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