// cVector.cpp Utilisation de la classe générique vector // > Ajout en tête ou en queue // > Parcours direct et rétrograde // > Insertion ou retrait // auteur: R.Astier // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + # include <iostream> # include <vector> using namespace std; // - - - - - - Q u e l q u e s u t i l i s a t i o n s - - - - - + int main () { vector<int> v; cout<<endl<<"vector<int> : "; cout<<v.size(); // Ajout en queue v.push_back(20); v.push_back(30); // Ajout en tête v.insert(v.begin(),10); // Ajout avant le dernier v.insert(v.end()-1,30); cout<<" puis "<<v.size()<< " éléments"<<endl; // Parcours (adresse et valeur) vector<int>::iterator it; cout<<"Parcours : "; for(it=v.begin(); it!=v.end(); it++) cout<<" "<<it<<","<<*it; cout<<endl; // Parcours rétrograde cout<<"Parcours rétrograde: "; vector<int>::reverse_iterator rit; for(rit=v.rbegin(); rit!=v.rend(); rit++) cout<<" "<<","<<*rit; cout<<endl; unsigned int i, trouve=0; // Insertion de 25 avant l'élément 30 cout<<"Insertion de 25 avant l'élément 30 : "; for(i=0; i<v.size() && !trouve;) if(v[i]==30) trouve=1; else i++; v.insert(&v[i],25); for(it=v.begin(); it!=v.end(); it++) cout<<" "<<*it; cout<<endl; // Retrait de plusieurs éléments // on enlève les multiples de 10 cout<<"Les multiples de 10 sont enlevés."; it=v.begin(); while( it!=v.end()) if((*it)%10 == 0) v.erase(it); else it++; cout<< " reste: "; for(it=v.begin(); it!=v.end(); it++) cout<<" "<<*it; cout<<endl; cout<<endl<<"vector<string> : "; vector<string> vs; vs.push_back("def"); vs.push_back("ghijkl"); vector<string>::iterator its; cout<<endl<<" Suite 'string'(longueur): "; for(its=vs.begin(); its!=vs.end(); its++) cout<<" "<<*its<<"("<<its->length()<<")"; cout<<endl; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + cout<<"\n> > > "; cin.getline( new char[80],80); return 0; } //fin cVector.cpp