void sort_and_unique( PartVector & partVector ) { PartVector::iterator begin = partVector.begin(); PartVector::iterator end = partVector.end(); std::sort( begin , end , PartLess() ); PartVector::iterator new_end = std::unique( begin , end ); partVector.erase( new_end , end ); }
void remove( PartVector & v , Part & part ) { const PartVector::iterator e = v.end(); PartVector::iterator i = v.begin(); i = std::lower_bound( i , e , part , PartLess() ); if ( i != e && *i == & part ) { v.erase( i ); } }