簡體   English   中英

const_reference或map的迭代器(實際未迭代時)

[英]const_reference or iterator for map (when not actually iterating)

我有一些代碼使用迭代器遍歷unordered_map的所有元素,但是在該循環中,還有其他幾個過程,我在其中將迭代器存儲到地圖中的特定元素,並且通常會進行很多跳躍但不進行迭代(不包括最外層的迭代器)。

在我看來,如果我實際上不進行迭代,則對元素使用unordered_map::const_reference可能更合適。 這是真的? 唯一使我無法使用const_references的事情是,從我的快速Google搜索中,他們似乎對平民沒有多大用處,或者至少很少討論。

常量正確性是C ++編程的關鍵之一。
編寫程序並在事實發生后添加const正確性非常困難(因為它會遍歷代碼),您需要提前進行操作。

因此,您應該更喜歡使用const_iterators而不是迭代器。 但是像所有事物一樣,這是一個判斷電話。

就個人而言:如果我不打算修改容器中的任何元素,那么我將使用const_iterators,但是如果有可能在對象上調用非const方法,則只能使用迭代器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM