Est-il légal d'effacer un élément d'un ensemble tout en for_each sur l'ensemble, tant que vous ne supprimez pas l'élément actuel?C++ Effacer un élément de l'ensemble pendant for_each
L'effacement d'ensemble conserve tous les itérateurs sauf celui en cours d'effacement.
Par exemple:
set<int> nums{0, 1, 2, 3, 4};
void weird_remove(int x) {
int randnum = rand() % 5;
if (randnum != x) {
nums.erase(randnum);
}
}
int main() {
for_each(nums.begin(), nums.end(), weird_remove);
}
aussi que diriez-vous au cours de plage pour les boucles?
Et je suppose que les réponses s'appliquent à la carte ainsi qu'à l'ensemble.