遍历数组
1、C-Style
for(size_t i =0; i < players.size(); i++)
{
if(players[i].hp == 0.f) players[i].hp = 100.f;
}
2、C++11
for(auto& player : players)
{
if(player.hp == 0.f) player.hp = 100.f;
}
3、std::for_each(), C++17
std::for_each(std::execution::par_unseq, players.begin(), players.end(), [](auto& player) {
if(player.hp == 0.f) player.hp = 100.f;
});
4、C++20
auto dead_players = players | std::views::filter([](const auto& p) {
return p.hp == 0.f;
});
std::ranges::for_each(dead_players, [](auto& p) { p.hp = 100.f; });