Top.Mail.Ru
Уведомления
Очистить все

Проверить существования ключа в std::map.

(@lineone)
New member

Не могу разобраться как проверить наличие определенного ключа (key) в существующем наборе пар в std::map. Просмотрел несколько раз список методов (тут), но не нашел подходящего (как ни странно). Небольшой пример для демонстрации:

std::map<string, int> demoMap;
demoMap["key1"] = 0x21;
demoMap["key2"] = 0x22;
demoMap["key3"] = 0x38;
demoMap["key4"] = 0x39;

Теперь я хочу проверить, есть ли ключ "key2", то есть что-то вроде demoMap.exists("key2") - но такого метода нет, как лучше организовать?

Цитата
Создатель темы Размещено : 05.10.2024 11:52
Метки темы
Aveal
(@aveal)
Top level Admin

Можно так:

if (demoMap.find("key2") == demoMap.end())
{
  // Key doesn't exist
}
ОтветитьЦитата
Размещено : 06.10.2024 11:15
TQFP
 TQFP
(@tqfp)
Level 5

Запись от: @lineone

Не могу разобраться как проверить наличие определенного ключа (key) в существующем наборе пар в std::map. Просмотрел несколько раз список методов (тут), но не нашел подходящего (как ни странно). Небольшой пример для демонстрации:

std::map<string, int> demoMap;
demoMap["key1"] = 0x21;
demoMap["key2"] = 0x22;
demoMap["key3"] = 0x38;
demoMap["key4"] = 0x39;

Теперь я хочу проверить, есть ли ключ "key2", то есть что-то вроде demoMap.exists("key2") - но такого метода нет, как лучше организовать?

Еще вариант через count():

if (demoMap.count("key2") == 0)
{
  // Key doesn't exist
}
if (demoMap.count("key2") != 0)
{
  // Key exists
}

 

ОтветитьЦитата
Размещено : 06.10.2024 14:48
Поделиться: