//: C07:WordSet.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.
#include <fstream>
#include <iostream>
#include <iterator>
#include <set>
#include <string>
#include "../require.h"
using namespace std;

void mnozinaSlov(const char* jmenoSouboru) {
  ifstream zdroj(jmenoSouboru);
  assure(zdroj, jmenoSouboru);
  string slovo;
  set<string> slova;
  while(zdroj >> slovo)
    slova.insert(slovo);
  copy(slova.begin(), slova.end(),
    ostream_iterator<string>(cout, "\n"));
  cout << "Počet jedinečných slov: "
       << slova.size() << endl;
}

int main(int argc, char* argv[]) {
  if(argc > 1)
    mnozinaSlov(argv[1]);
  else
    mnozinaSlov("WordSet.cpp");
} ///:~
