//: C07:VectorInsertAndErase.cpp {-bor}
// 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.
// Mazání prvků z vektoru
//{L} Noisy
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
#include "Noisy.h"
using namespace std;

int main() {
  vector<Noisy> v;
  v.reserve(11);
  cout << "Byl rezervován prostor pro 11 objektů" << endl;
  generate_n(back_inserter(v), 10, NoisyGen());
  ostream_iterator<Noisy> vystup(cout, " ");
  cout << endl;
  copy(v.begin(), v.end(), vystup);
  cout << "vkládání prvku:" << endl;
  vector<Noisy>::iterator it =
    v.begin() + v.size() / 2; // střed
  v.insert(it, Noisy());
  cout << endl;
  copy(v.begin(), v.end(), vystup);
  cout << "\nMazání prvku:" << endl;
  // Nelze použít předchozí verzi iterátoru
  it = v.begin() + v.size() / 2;
  v.erase(it);
  cout << endl;
  copy(v.begin(), v.end(), vystup);
  cout << endl;
} ///:~
