Sono stato troppo pensieroso (alcuni potrebbero dire underthinking, vediamo cosa succede) la costanza dei contenitori STL e dei loro elementi.Costellazione dei contenitori STL e dei loro elementi - quando utilizzare const?
Ho cercato una discussione su questo, ma i risultati sono stati sorprendentemente scarsi. Quindi non sono necessariamente alla ricerca di una risposta definitiva, sarei altrettanto contento di una discussione che fa muovere di nuovo gli ingranaggi nella mia testa.
Diciamo che ho una classe che mantiene std :: stringhe in un vettore std ::. La mia classe è un dizionario che legge le parole da un file di dizionario. Non saranno mai cambiati. Così sembra prudente dichiareremo come
std::vector<const std::string> m_myStrings;
Tuttavia, ho letto i commenti sparsi che non si deve utilizzare gli elementi in un const std :: vector, in quanto gli elementi devono essere assegnabili.
Domanda:
ci sono casi in cui gli elementi sono utilizzati in const std :: vector (esclusi hack, ecc)?
Gli elementi const sono utilizzati in altri contenitori? Se sì, quali, e quando?
Sto principalmente parlando di tipi di valore come elementi qui, non puntatori.
Ok, un semplice no è sufficiente - almeno significa che ho capito bene. EDIT: Vorrei davvero che il compilatore potesse cogliere questo utilizzo. Mi rendo conto che ci sono ragioni per non farlo, però. – Leander
@Leander: Ok, un semplice "Ok" è sufficiente. –