lista i działanie metody unique

0

[code]
list<string> myList;
myList.push_back("b");
myList.push_back("a");
myList.push_back("a");

myList.unique();

for(list<string>::const_iterator itr = myList.begin(); itr != myList.end(); ++itr)
{
cout<<*itr<<endl;

}
[/code]

Powyższy kod robi to czego oczekuje czyli usuwa z listy powtarzający się element " a ". Wydruk program: b a.

[code]
list<string> myList;
myList.push_back("a");
myList.push_back("b");
myList.push_back("a");

myList.unique();

for(list<string>::const_iterator itr = myList.begin(); itr != myList.end(); ++itr)
{
cout<<*itr<<endl;

}
[/code]

Dla powyższego kodu metoda unique nie usuwa powtarzającego się elementu "a". Wydruk programu to: a b a. Dlaczego ? Jak w drugim przypadku uzyskać działanie metody unique takie jak w pierwszym ?

0

Przeczytaj dokumentację: http://www.cplusplus.com/reference/list/list/unique/

Chodzi o to, że unique() usuwa kolejne powtarzające się elementy. Jeśli chcesz usunąć wszystkie powtarzające się, powinieneś najpierw posortować listę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1