mapear com chaves const mas não com valores const?
Tenho uma situação em que gostaria de ter um mapa que não permita adicionar / remover chaves após a inicialização, mas os valores podem mudar (portanto, não posso simplesmente fazer o mapaconst
) Ou seja,
/*semi-const*/ map<int,int> myMap = initMap();
myMap[1] = 2; // NOT OK, because potentially adds a new key
myMap.at(1) = 2; // OK, because works only if key is present
for (auto & element : myMap) {
element.second = 0; // OK, values may change
}
Eu poderia escrever meu próprio invólucro parastd::map
, mas tenho a sensação de que é algo não muito incomum, então me pergunto se já existe uma solução.
Existe algum idioma padrão para um mapa que não permite adicionar / remover chaves, enquanto os valores podem mudar?
ps: Eu sei que o título por si só é um pouco vago, porque as chaves já estão constantes em um mapa, mas espero que fique claro o que quero dizer ...