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 ...

questionAnswers(5)

yourAnswerToTheQuestion