Предположим, у меня много логических переменных (я пытаюсь создать текстовую приключенческую игру, и мне понадобится путь к расходяванию в зависимости от выбранных вариантов), есть ли простой способ проверить, равна ли данная строка равным имя инициализированной переменной или член инициализированной структуры? (Так что, например, я могу изменить переменную от ложной до истины?)Как проверить наличие переменной или члена структуры?
0
A
ответ
0
Быстрый пример использования std::map
для борьбы с монстром.
std::map<std::string, bool> flags;
определяет и присваивает список названных флагов, которые могут быть или не быть истинными. Этот список может быть использован
if (flags["key"])
ищет flags
, чтобы узнать, существует ли «ключ». Если это так, отобразится отображаемое значение (true
или false
). Если этого не существует, и это большое различие, если вы знакомы с Java, «ключ» создается и устанавливается на значение по умолчанию (false
в этом случае).
#include <iostream>
#include <map>
void slaymonster(std::map<std::string, bool> & flags)
{
//check if hero has sword of monster slaying
if (flags["has sword of monster slaying"])
{
flags["monster slain"] = true; // sets key "monster slain" to true so
// hero can do stuff that requires
// monster to have been slain
std::cout << "Thou hast slain the monster!\n";
}
else
{
std::cout << "Thou hast been slain by the monster!\nInsert coin to continue.\n";
}
}
int main()
{
std::map<std::string, bool> flags;
std::cout << "Try to slay monster before finding sword\n";
slaymonster(flags);
std::cout << "\nHero finds sword of monster slaying\n";
flags["has sword of monster slaying"] = true;
std::cout << "Try to slay monster after finding sword\n";
slaymonster(flags);
std::cout << "\nHero is mugged and loses sword of monster slaying\n";
flags["has sword of monster slaying"] = false;
std::cout << "Try to slay monster after losing sword\n";
slaymonster(flags);
}
Выход:
Try to slay monster before finding sword
Thou hast been slain by the monster!
Insert coin to continue.
Hero finds sword of monster slaying
Try to slay monster after finding sword
Thou hast slain the monster!
Hero is mugged and loses sword of monster slaying
Try to slay monster after losing sword
Thou hast been slain by the monster!
Insert coin to continue.
+0
Это потрясающе! Очень хорошо объяснено и очень интересный пример! Спасибо! – Nex
Смежные вопросы
- 1. В specman, как проверить наличие поля переменной или структуры?
- 2. Как проверить наличие переменной окружения?
- 3. Наличие переменной-члена в классе исключений
- 4. Смещение переменной-члена внутри структуры
- 5. Как проверить наличие ключа в вложенной структуры
- 6. Как проверить наличие числа в поле структуры?
- 7. Как проверить наличие переменной Scope в PowerShell?
- 8. Как проверить наличие переменной в среде функции?
- 9. django проверить наличие переменной контекста шаблона
- 10. Как определить наличие и тип переменной-члена с именем?
- 11. Как проверить наличие обновления или нет
- 12. Лучший способ проверить наличие переменной в Python
- 13. Как проверить наличие результата
- 14. Динамически проверить наличие имени поля структуры с иерархией
- 15. Можно ли проверить наличие переменной в C#?
- 16. Как проверить наличие элемента?
- 17. Как проверить наличие файла
- 18. Как проверить наличие БД?
- 19. Как инициировать и изменять массив в качестве переменной-члена структуры?
- 20. Как проверить проверку члена?
- 21. Проверить наличие таблицы (или просмотреть) до upsert
- 22. Как быстро проверить наличие Xserver
- 23. Swift: как проверить наличие протоколов?
- 24. Как проверить наличие узла, путь которого задан в переменной
- 25. Как проверить наличие переменной сеанса в Mule MEL?
- 26. Перезапись переменной или проверить
- 27. Как проверить наличие уникального пользователя?
- 28. Как проверить, инициализированы ли структуры или нет?
- 29. Как проверить наличие недействительных RLMResults?
- 30. Установка одной переменной-члена структуры, похоже, изменяет другую
Неа. После компиляции программы все эти красивые имена переменных исчезают и заменяются смещениями памяти. – user4581301
Возможно, вам нужна 'std :: map' в классе? –
NathanOliver
или 'std :: set'. –
Jarod42