// chapitre 5 vecteur itérateur.cpp : définit le point d'entrée pour l'application console.
//

#include "stdafx.h"

#include <iostream>
#include <string>
#include <vector>
#include <iterator>

using namespace std;

int main(int argc, char* argv[])
{
	// fonctions itérateur
	vector<string> tab;	
	vector<string>::iterator iter;
	
	tab.insert(tab.begin(),"Mozart");
	tab.insert(tab.begin()+1,"Beethoven");
	tab.insert(tab.begin()+2,"Schubert");
	
	for(iter=tab.begin(); iter!=tab.end(); iter++)
		cout << (*iter) << " ";

	cout << endl;

	// fonctions de pile
	vector<int> v;
	v.push_back(1756);	// empile 1756
	v.push_back(1770);	// empile 1770
	v.push_back(1797);	// empile 1797

	int last=v.back();	// interroge le dernier élément, soit 1797
	v.pop_back();		// dépile 1797	

	vector<int>::iterator i;
	for(i=v.begin(); i!=v.end(); i++)
		cout << *i << " ";

	// fonctions de suppression
	vector<string> opus;
	opus.insert(opus.begin(),"K545");
	opus.insert(opus.begin()+1,"K331");
	opus.erase(opus.begin());
	vector<string>::iterator o;
	
	for(o=opus.begin(); o!=opus.end(); o++)
		cout << *o << " "; //affiche seuelement K331

	// fonction d'échange
	vector<int> dates;
	dates.insert(dates.begin(),1789);
	dates.insert(dates.begin()+1,1515);	
	dates.swap(dates.begin(),dates.begin()+1);
	return 0;
}

