Je cherche une STL (mais pas augmenter) récipient, qui, après les opérations suivantes contiendra 2 éléments: « abc » et « xyz »:Quel conteneur STL utiliser si je veux qu'il ignore les éléments dupliqués?
std::XContainer<string> string_XContainer;
string_XContainer.push_back("abc");
string_XContainer.push_back("abc");
string_XContainer.push_back("xyz");
Soit dit en passant, j'ai besoin juste pour pour appeler le string_XContainer.size()
à la fin, pour obtenir le nombre total de chaînes uniques. Alors peut-être que je n'ai même pas besoin d'un conteneur, et il y a une façon plus élégante de le faire?
Oui, l'ensemble est le conteneur pour cela. @Igor Oks, mais notez que l'ordre des éléments insérés ne sera pas maintenu dans l'ensemble, je suppose que ce n'est pas nécessaire. – Naveen
Il ne maintiendra pas l'ordre d'insertion mais il maintiendra un ordre faible strict. –
Ne pas oublier que unique fonctionne uniquement sur les gammes triées. Vous pouvez tester si une plage est triée en utilisant la commande 'std :: adjacent_find (iBegin, iEnd, std :: greater()) == iEnd' et n'appliquez' sort' que si ce n'est pas le cas. –