在C++中,std::for_each
是一个算法,用于对容器中的每个元素执行特定操作。然而,在某些情况下,需要在循环过程中中断或者修改容器元素,这时候就不能使用std::for_each
了。
在这种情况下,可以使用传统的C++循环,例如for
循环或者范围循环。以下是一个使用范围循环的例子:
#include<iostream>
#include<vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
for (auto it = v.begin(); it != v.end(); ++it) {
if (*it == 3) {
// 当遇到3时,删除该元素
it = v.erase(it);
// 继续循环
continue;
}
std::cout << *it<< std::endl;
}
return 0;
}
在这个例子中,我们使用范围循环遍历一个std::vector
,当遇到元素3时,我们删除该元素并继续循环。这样就可以在循环过程中中断或者修改容器元素。
领取专属 10元无门槛券
手把手带您无忧上云