我讀:爲什麼只有非常量映射才能提供像關聯數組一樣的直接元素檢索?
標準C++庫:教程和參考由尼古拉M. Jossuttis
這是我去到時我會使用一些STL機制預定任何重要的方式。無論如何,我很快就重讀了std :: map和相關算法的章節,並且我注意到了一個我之前沒有想過的句子:
非常量映射爲直接元素訪問提供了下標操作符。但是,下標運算符的索引不是元素的整數位置。 ...等。
爲什麼只有非常量映射可以像關聯數組一樣使用?在這種情況下,提供只讀語義似乎相當簡單。如果你試圖用一個不存在的鍵來檢索一個元素(假設你不能在地圖上添加一個新的鍵/值(如果它的常量不變)),那麼我認爲例外是可能的。
我想了解這背後的原因,如果任何人都可以擺脫一些光:)謝謝!
如果沒有匹配的元素,你會如何期待map [「foo」]'在'std :: map'的const實例上工作?它不能創建它,因爲'map'是常量,拋出異常會與非const行爲有所不同,這可能是危險的。 – ereOn