Предположим, что у меня есть std::map<std::string, int>. std::string можно сравнить с строками C (const char *) без std::string временных рядов. Тем не менее, map::find(), похоже, заставляет меня создать временный std::string, который, вероятно, требует выделения памяти. Как мне избежать этого? Концептуально это легко, но STL, похоже, предотвращает это.
#include <map>
int main()
{
std::map<std::string, int> m;
m.find("Olaf");
}