Bonjour, Bon, je pensais avoir compris les conteneurs, mais voila, ca ne marche pas comme je le veux.
Voici exactement mes declarations :
Ce que je veux faire ? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class CCell; typedef std::list<CCell> TCellsList; typedef TCellsList::iterator TIteratorOnACell; typedef std::list<TIteratorOnACell> TiterCellsList; typedef TiterCellsList::iterator TIteratorOnAniterCell;
j'ai une classe CCell, je veux avoir une list d'instances de CCell => TCellsList.
TIteratorOnACell est mon outil de parcours de ma liste de CCell.
Avant de détailler la suite, je vous explique l'objectif recherche :
J'ai une liste de cellules "generale". Et je veux pouvoir distinguer au sein de cette liste, des sous-listes. Mais je ne veux pas creer de doublons de cellules. Donc, je m'etais dis, mes sous-ensembles doivent etre des liste de pointeur faisant reference a un element de ma liste generale. Ca va, tous le monde me suit ? A ce moment la, je me suis dis, bon, les iterateurs, ce sont des pointeurs !!! Donc si je fais une liste d'iterateurs ... Et c'est la je pense qu'est mon erreur.
TiterCellsList c'est ma liste d'iterateurs. (mes sous-ensembles)
TIteratorOnAniterCell mon outil de parcours d'un sous-ensemble.
Maintenant, je remarque que :
- je parcours ma liste generale de cellule sans probleme, les donnees, tout est correcte.
- je parcours une sous liste, le nombre d'element est correcte mais les donnees c'est n'importe quoi !
J'ai bien verifie ma procedure d'ajout d'elements d'une sous liste et je n'y vois rien de speciale. J'en conclu que l'utilisation des listes d'iterateurs est une erreur, surement parceque ceux ci sont ephemeres et que je perds la liaison avec l'element de la liste generale. Le solution serait donc de faire une liste de bon vieux pointeurs !
Je sais comment regler le pb, a priori. Mais cette histoire me titille alors est ce que vous pourriez me confirmer ou imfirmer mes soupcons pour ma culture svp, et surtout pour etre sur de bien comprendre, cette fois ci le fonctionnement des iterateurs.
merci d'avance pour vos reponses.
Partager