トポロジカル ツリーの特定の場所をトレースするために、この関数を作成しました。しかし、なぜか。その無限。
int electricity(int x){
multimap<int,entita,greater<int> >::reverse_iterator it = siet.rbegin();
advance(it,x-1);
if((*it).second.z=='E') return (*it).second.i;
return electricity((*it).first);
}
実行時に変数をデバッグしましたが、X が (*it).first とは異なることは 100% 確信しています。しかし、何らかの理由で、次のすべての関数呼び出しで x は同じままです。この場合 (4)。理由はありますか?