Bonjour!
J'ai une classe du type:
Le but de cette fonction est de travailler sur une des listes (d'où le numelemvector en paramètre). De plus je voudrais travailler sur la liste à partir d'un certain élément de la liste dont je connais déjà la position, d'où mon idée de passer en argument un list<int>::iterator.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class A{ vector<list<int> > m_Vect void fonction(int numelemvector, list<int>::iterator elemliste) }
L'idée du code serait:
Maintenant, le code où j'appelle "fonction" serait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void A::fonction(int, numelemvector, list<int>::iterator elemliste){ list<int>::iterator lit=elemliste; //car je ne veux pas modifier elemliste, je ne veux que l'information de position qu'il contient while(1){ m_Vect[numelemvector].erase(lit) //par exemple lit++; //et une condition de sortie de la boucle } }
Mes doutes sont les suivants: si l'on crée un iterator (ici it) relativement à une liste bien précise, peut-on le passer en argument d'une fonction? Ici le "this" de fonction correspond bien à la liste avec laquelle it a été défini, mais qu'en est-il si ce n'est pas le cas?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 A a; list<int>::iterator it; it=a[i].begin() //... // après une série d'opérations it renvoit à une position x dans a.m_Vect[i] // J'aimerais pouvoir écrire: a.fonction(i, it);
Partager