Bonsoir tous le monde,
je travaille actuellement sur la transcription d'un code C++ en java, mais le souci c'est que je ne connais pas le C++ :-(
Je bloque sur un morceau utilisant des Iterator et j'aurai souhaité que vous m'apportiez vos lumières :
Code C++ : 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 ... typedef typename std::list<Point<d> >::iterator It; ... template <int d> double Miniball<d>::max_excess (It t, It i, It& pivot) const { ... for (It k=t; k!=i; ++k) { const double *p = (*k).begin(); ... pivot = k; ... } return max_e; }
Voilà ce que je pense avoir compris :
- It est un nouveau type qui définit un itérateur sur une liste de points de dimension n. Je peux vous dire que ces points sont juste une classe contenant un tableau de double.
- En faisant des recherches, j'ai trouvé que dans un itérateur, la fonction begin() renvoie le pointeur sur le premier élément, sauf si celui-ci a été incrémenté par 'MonIterateur.begin()++'.
- Si T est un itérateur, alors faire T++ permet d'avancer à l'élément suivant.
Mais je bloque sur la première ligne du for : on incrémente k dans la boucle, mais on prend systématiquement (*k).begin().
Donc cela veut dire qu'il y a un souci dans ce que je pensais avoir compris.
Est ce que quelqu'un pourrait m'aider à y voir plus clair ?
Merci par avance
Partager