Evitando a construção de chaves para std :: map :: find ()

Suponha que eu tenha umstd::map<std::string, int>. std::string&nbsp;pode ser comparado com strings C (const char *) semstd::string&nbsp;temporárias. Contudo,map::find()&nbsp;parece me forçar a construir um temporáriostd::string, o que provavelmente requer uma alocação de memória. Como evito isso? Conceitualmente, é fácil, mas o STL parece impedir isso.

#include <map>

int main()
{
    std::map<std::string, int> m;
    m.find("Olaf");
}