Есть ли способ не создавать строковый объект при запросе карты со строковым ключом? [дубликат] ⇐ C++

Программы на C++. Форум разработчиков
Anonymous
Есть ли способ не создавать строковый объект при запросе карты со строковым ключом? [дубликат]

Сообщение Anonymous »

Предположим, у меня есть карта или unordered_map с типами шаблонов . Теперь я хочу узнать, содержит ли контейнер ключ «some_name». Поэтому я использую функцию .find, которая принимает константу std::string&, однако нет необходимости выполнять динамическое распределение кучи, например, когда вы создаете объект std::string, который в этом случае должен быть создан, когда я передаю " some_name" в функцию.
Я думал о сохранении ключей как string_views, но не думаю, что это хорошая идея, поскольку считаю, что записи карты должны хранить копии строки. Однако, поскольку функция поиска строго принимает std::string&, что я могу с этим поделать? Рассмотрим как случаи, когда у меня есть строковый литерал, как в примере, который я привел выше, так и уже существующие строки, такие как представления строк, указатели на строки или что-то еще, и я не хочу создавать std::string.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ith-string

Вернуться в «C++»