iterateur sur vecteur avec objets
Bonsoir
j' ai realise un programme de test pour voir si je pouvais utiliser un iterateur sur
un objet de type point(abcisse,ordonnee).
Quand je fais la boucle pour afficher les elements du vecteur j ' ai un message d' erreur
je crois comprendre que la donnee (*il) n est plus de type iterator simple donc il ne peut plus l ' afficher .
Que dois je faire pour afficher proprement les donnees du vecteur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
#include <iostream>
#include <vector>
#include <utility>
#include <iterator>
#include <list>
using namespace std;
class point
{
int a;
int b;
public :
point(int abs = 0,int ord = 0)
{
a = abs;b = abs;
}
int & operator [] (int);
void affichep(vector<point>); /*tentative en redefinissant []*/
};
int & point::operator [] (int i)
{
return a,b;
}
/*void point::affichep(vector<point>v)
{
unsigned int i; essai avec une fonction ne pas
for (i=0;i<v.size();i++) tenir compte de ce code
cout << v[i];
}*/
main()
{
point fir(4,5);
point sec(6,7);
list<point>lp(7);
//lp.push_front(fir);
//lp.push_front(sec);
vector<point>vp(5);
vp.assign (lp.begin(),lp.end());
vp.assign (3,fir);
vector<point>::iterator il;
for (il=vp.begin();il!=vp.end();il++)
{
cout << (*il) << "\n";
}
} |