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 : Sélectionner tout - Visualiser dans une fenêtre à part
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";
    }
}