Possible en double:
remove_if equivalent for std::mapGCC arbre conteneurs de données STL
Hier je l'ai écrit un programme qui utilise multiset pour stocker des éléments comme celui-ci:
std::multiset < boost::shared_ptr <CEntity> > m_Entities;
Puis i essayer d'utiliser l'algorithme standard remove_if
comme ceci:
std::remove_if(m_Entities.begin, m_Entities.end(), MarkedForDestroy);
MAIS compilation a échoué, parce que si nous voyons dans GCC 4.4 implementaion de jeu et multiset on voit que:
typedef typename _Rep_type::const_iterator iterator;
typedef typename _Rep_type::const_iterator const_iterator;
J'ai été choqué. Je google ce moment et mieux que j'ai trouvé que cela ne contredit pas la norme. La même chose pour l'ensemble.
Comment cela ne peut pas contredire si les algorithmes standard ne fonctionnent pas? Comment je peux mieux changer de conteneur?
Dupliquer de [remove_if équivalent pour std :: map] (http://stackoverflow.com/questions/800955/remove-if-equivalent-for-stdmap) –