//: C06:TransformNames.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.
// Další použití transform().
#include <algorithm>
#include <cctype>
#include <ctime>
#include <vector>
#include "Inventory.h"
#include "PrintSequence.h"
using namespace std;

struct NovyVylepseny {
  Katalog operator()(const Katalog& kat) {
    return Katalog(toupper(kat.getPolozka()),
      kat.getMnozstvi(), kat.getHodnota());
  }
};

int main() {
  vector<Katalog> vk;
  srand(time(0));  // generátor náhodnýhch čísel
  generate_n(back_inserter(vk), 15, KatalogGen());
  print(vk.begin(), vk.end(), "vk");
  transform(vk.begin(),vk.end(),vk.begin(),NovyVylepseny());
  print(vk.begin(), vk.end(), "vk");
} ///:~
