//: C07:UniqueList.cpp
// Z knihy "Myslíme v jazyce C++, část 2" od Bruce Eckela a Chucka Allisona.
// (c) 1995-2004 MindView, Inc. Všechna práva vyhrazena.
// Přečtěte si podmínky používání zdrojových kódů umístěné v souboru 
// 'Licence.txt' dodávaném spolu s balíčkem kódu dostupným na www.MindView.net.
// Testování funkce seznamu unique().
#include <iostream>
#include <iterator>
#include <list>
using namespace std;

int a[] = { 1, 3, 1, 4, 1, 5, 1, 6, 1 };
const int ASZ = sizeof a / sizeof *a;

int main() {
  // pro výstup:
  ostream_iterator<int> vystup(cout, " ");
  list<int> li(a, a + ASZ);
  li.unique();
  // Ajajaj! žádná duplicita se neodstranila:
  copy(li.begin(), li.end(), vystup);
  cout << endl;
  // Nejprve se musí třídit:
  li.sort();
  copy(li.begin(), li.end(), vystup);
  cout << endl;
  // Nyní má unique() nějaký efekt:
  li.unique();
  copy(li.begin(), li.end(), vystup);
  cout << endl;
} ///:~
