我正在尝试迭代地图,因为某些原因迭代器不会从第一个项目开始。
const Noeud* origine = &noeuds.at(nomorigine);
map<string, Noeud>::iterator it;
origine->seeRoutes(); //Prints n5: n4 n6
it = origine->getRoutes().begin();
cout<<it->first<<endl; //Prints n4.
for(it = origine->getRoutes().begin(); it != origine->getRoutes().end(); it++){
cout<<it->first<<endl; //Prints n6.
}
void Noeud::seeRoutes() const{
cout<<getNom()<<": ";
for(auto it = routes.begin(); it != routes.end(); it++){
cout<<it->first<<" ";
}
cout<<endl;
}
我尝试过使用auto
但结果是一样的。可能是造成这个问题的原因是什么?
以下是Noeud的课程:
class Noeud{
public:
string getNom() const;
void setNom(const string& nom);
void ajouterRoute(const string& nomRoute, const Noeud noeud);
map<string, Noeud> getRoutes() const;
void seeRoutes() const;
private:
string nom;
map<string, Noeud> routes;
};