Можете ли вы создать std ::map только с ключами?

#c #dictionary #stl #containers

#c #словарь #stl #контейнеры

Вопрос:

Итак, я хочу использовать std::map , чтобы найти, существует ли элемент. Так что мне в основном нужен только ключ, а не какое-либо значение.

Есть ли какой-нибудь способ сделать что-то вроде std::map<std::string, void> , например? Или есть лучшая альтернатива std::map для такого рода вещей?

В худшем случае std::vector<std::string> можно было бы использовать другой подобный контейнер, но мне любопытно, можете ли вы сделать это с std::map помощью ( std::map<std::string, bool> также можно использовать, но bools будут потрачены впустую). память).

Комментарии:

1. Используйте std::set .

2. Если все, что вас волнует, это то, существует ли что-то, и вам не нужны данные в каком-либо определенном порядке использования std::unordered_set .

Ответ №1:

Или есть лучшая альтернатива std ::map для такого рода вещей?

ДА. Контейнер, который вы описываете, представляет собой набор. В std::set стандартной библиотеке есть и std::unordered_set соответствующие их аналогам карты.