Dans le livre « C++ In A Nutshell », il y a le code exemple suivantAidez-moi à comprendre std :: effacer
std::vector<int> data
...
std::erase(std::remove(data.begin(), data.end(), 42),
data.end());
Je pensais que « effacement » était une fonction membre, ne devrait donc pas être 'data.erase' plutôt que 'std :: erase'? Le compilateur C++ peut-il indiquer de quel membre vous voulez appeler une fonction membre, ou le livre at-il omis la documentation d'une fonction de gabarit d'effacement ou l'exemple est-il faux?
Il n'y a pas algorithme générique 'erase'. –
... même pas dans '' (allez-y, essayez-le). –
oui j'ai été incorrect en disant qu'il y avait un algorithme d'effacement générique (je me suis souvenu mal). mais il existe un en-tête d'algorithme dans la bibliothèque standard. Qui comprend beaucoup d'algorithmes génériques (trouver, inclut, etc.), qui fonctionne avec les différents conteneurs stl. – lkristjansen