//: C07:StringVector.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.
// vektor řetězců
#include <fstream>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>
#include "../require.h"
using namespace std;

int main(int argc, char* argv[]) {
  const char* fname = "StringVector.cpp";
  if(argc > 1) fname = argv[1];
  ifstream in(fname);
  assure(in, fname);
  vector<string> retezce;
  string radek;
  while(getline(in, radek))
    retezce.push_back(radek);
	// Udělat něco s řetězci
  int i = 1;
  vector<string>::iterator w;
  for(w = retezce.begin(); w != retezce.end(); w++) {
    ostringstream ss;
    ss << i++;
    *w = ss.str() + ": " + *w;
  }
  // Nyní je odeslat na výstup:
  copy(retezce.begin(), retezce.end(),
    ostream_iterator<string>(cout, "\n"));
  // jeleikož to nejsou ukazatele, objekty 
	// string se uklidí sami!
} ///:~
