[英]What STL container should i use to walk a tree?
我不知道雙向是否意味着我可以編寫 rbegin() 或者我是否可以減少迭代器。
我有一棵只向前的樹,這不是問題。 我想走它。 我現在正在做的是每次我訪問一個分支時,我都會推送 current_iterator。 現在的問題是我正在遍歷一個分支並稱為 function。 function 需要訪問列表中之前的節點。
所以我寫了it=current_iterator
並計划寫--it
來倒帶。 作為一個快速測試,我寫了--o.begin()==o.end()
看看我是否可以做到這一點。 我得到一個斷言錯誤。
我正在使用雙端隊列。 在迭代過程中,我可以使用什么容器來允許我在交互器 go 上前后寫=
? 看來我還需要保留o
的副本,以便我可以比較.begin()
和.end()
。 推薦的容器和技術是什么?
雙端隊列迭代器是隨機訪問的。 您可以增加和減少它們。
問題可能是您試圖減少begin
返回的迭代器。 這樣做並不能保證給你列表的結尾——雙端隊列不是循環的。 (我認為這是未定義的行為,所以它可以給你結束,但我懷疑任何實現實際上都是這樣做的。)
換句話說,您是否可以減少迭代器的測試不是有效的測試; 您從中得出的不能減少迭代器的結論也是無效的。 只要新位置也有效,您就可以遞減任何有效的雙端隊列迭代器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.