我寫了這個函數來跟蹤拓撲樹中的某個點。但是由於某種原因。它的無限。使用STL遞歸?
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);
}
我在運行時調試了變量,我100%確定X不同於(* it).first。然而,由於某種原因,每次下一個函數調用x都保持不變。在這種情況下(4)。任何想法爲什麼?
正如旁註:您可以像指針一樣取消引用迭代器:例如, 'it-> second.z'與'(* it).second.z'相同。 (當迭代器取消引用指針類型時,這會有點棘手,但在這裏並不是這樣) – Nobody
地圖中有多少個鍵?難道是'advance'改變''它是'siet.rend()'迭代器嗎? – Nobody
我知道,但我學到了一半。不知何故,這成爲我的偏好。 –