Bonjour à tous, j'ai un problème: j'ai une class A qui contient un vecteur d'éléments de type B:
mon problème est lorsque j'itère sur les éléments de B, en mode debug sous visual 2005, j'ai une erreur qui me dit en gros que l'iterateur n'a pas de conteneur:
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 #include "B.h" #include <vector> class A { public typedef std::vector<B> listB; private: listB m_lstB; public: listB::iterator beginB() throw() { return m_lstB.begin(); } listB::iterator endB() throw() { return m_lstB.end(); } };
Avez vous déjà eu ce type d'erreur, j'ai l'impression que c'est lié au fait qu'il y a une copie lors du renvoi de l'iterateur de début et de fin dans mes méthodes beginB et endB. Je n'utilise peut être pas la bonne méthodologie pour permettre d'itérer sur mon conteneur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "A.h" int main() { A a; A::listB::iterator it = a.beginB(); for (; it!=a.endB(); ++it) std::cout << *it << std::endl; return 0; }
Partager