passer un iterator en argument d'une fonction
Bonjour!
J'ai une classe du type:
Code:
1 2 3 4 5
| class A{
vector<list<int> > m_Vect
void fonction(int numelemvector, list<int>::iterator elemliste)
} |
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.
L'idée du code serait:
Code:
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
}
} |
Maintenant, le code où j'appelle "fonction" serait:
Code:
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); |
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?