std::map dbo;
...
std::string val = map["foo"];
< /code>
Все хорошо, но мне поражает, что «foo» преобразуется во временную строку при каждом вызове. Конечно, было бы лучше иметь постоянную Std :: String (конечно, это, вероятно, крошечные накладные расходы по сравнению с диском IO, который просто принес объект, но я все еще является действительным вопросом). Так что же такое правильная идиома для констант Std :: String? < /P>
Например - я могу иметь < /p>
const std::string FOO = "foo";
< /code>
В заголовке, но затем я получаю несколько копий < /p>
Игнорирую всю карту, STL и т. Д. Много кода в значительной степени std :: string
-орицентирован (мой, конечно, есть), и естественно хотеть для них постоянные, не платя снова и снова за распределение памяти.
У меня есть карта, которая представляет объект DB. Я хочу получить «хорошо известные» значения от него < /p> [code] std::map dbo; ... std::string val = map["foo"]; < /code> Все хорошо, но мне поражает, что «foo» преобразуется во временную строку при каждом вызове. Конечно, было бы лучше иметь постоянную Std :: String (конечно, это, вероятно, крошечные накладные расходы по сравнению с диском IO, который просто принес объект, но я все еще является действительным вопросом). Так что же такое правильная идиома для констант Std :: String? < /P> Например - я могу иметь < /p> const std::string FOO = "foo"; < /code> В заголовке, но затем я получаю несколько копий < /p> Игнорирую всю карту, STL и т. Д. Много кода в значительной степени std :: string [/code] -орицентирован (мой, конечно, есть), и естественно хотеть для них постоянные, не платя снова и снова за распределение памяти.