![](/img/trans.png)
[英]c++ allocator traits reference and const_reference missing and iterator to const iterator conversion
[英]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.