Sto leggendo:Perché solo le mappe non costanti forniscono il richiamo diretto di elementi associativi di tipo array?
La libreria standard C++: Un tutorial e una di riferimento da Nicolai M. Jossuttis
è il mio go-to prenotare quando ho intenzione di utilizzare alcuni meccanismi STL in qualsiasi modo significativo. Ad ogni modo, mi ha subito rileggendo i capitoli sulla std :: map e relativi algoritmi e ho notato una frase che non avevo pensato prima:
mappenon costante forniscono un operatore di indicizzazione per l'accesso elemento diretto. Tuttavia, l'indice dell'operatore di pedice non è la posizione integrale dell'elemento. ... ecc.
Perché è possibile utilizzare solo le mappe non costanti in un array associativo? Sembra che sarebbe abbastanza semplice fornire una semantica di sola lettura in questo caso. Suppongo che le eccezioni sarebbero possibili se provaste a recuperare un elemento con una chiave che non esistesse (seno non è possibile aggiungere una nuova chiave/valore alla mappa se è costante).
Mi piacerebbe capire il ragionamento dietro questo se qualcuno può far luce :) grazie!
Come vi aspettate 'mappare [ "foo"]' di lavorare su un 'un'istanza const' di' std :: map' se non v'è alcun elemento corrispondente? Non può creare da quando il 'map' è const e gettando un'expection essere diverso dal comportamento non-const che potrebbe essere pericoloso. – ereOn