私は多くのブール変数を持っているとしましょう(私はテキストベースのアドベンチャーゲームを作ろうとしています。選択された選択肢に応じて分岐するパスが必要です)、与えられた文字列が等しいかどうかを調べる簡単な方法があります初期化された変数の名前または初期化された構造体のメンバ? (変数をfalseからtrueに変更できるように)変数または構造体のメンバーの存在を確認するにはどうすればいいですか?
0
A
答えて
0
std::map
を使ってモンスターと戦うという簡単な例です。
は、trueまたはそうでないかもしれない名前付きフラグのリストを定義し、割り当てます。このリストは、
if (flags["key"])
で見ることができます。「キー」が存在するかどうかを確認するには、flags
を参照してください。存在する場合、マップされた値(true
またはfalse
)が返されます。それが存在しない場合、Javaに精通している場合はこれが大きな違いです。「key」が作成され、デフォルト値(この場合は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. Swift:メンバーが構造体内に存在するかどうかの確認
- 2. 変数が存在するかどうかを確認するにはどうすればいいですか?
- 3. 変数が存在するかどうかを確認するにはどうすればよいですか?
- 4. 構造体内に多くの構造体を入れるにはどうすればいいですか?
- 5. 構造体に特定の型のメンバーがあるかどうかを確認
- 6. 一部のメンバーだけが別の構造体の値を使用できる構造体を宣言するにはどうすればいいですか?
- 7. 環境変数の存在を確認するにはどうすればよいですか?
- 8. Cで構造体メンバーの空白文字列をスキャンするにはどうすればよいですか?
- 9. 構造体へのポインタとして構造体をマーシャリングするにはどうすればよいですか?
- 10. Cで構造体の変数にアクセスして印刷するにはどうすればいいですか?
- 11. 別の構造体の内部にある構造体のメンバーの参照を作成するにはどうすればよいですか?
- 12. 構造体または共用体でないメンバーのリクエスト
- 13. ヘッダファイル内の構造体内の変数を取得するにはどうすればよいですか? C++
- 14. 構造体のデータを更新してチェーンコードに保存するにはどうすればいいですか?
- 15. 構造体をマップに格納します。構造体がマップ内に存在するかどうかの確認
- 16. 構造体またはクラスのメンバーであるベクトルのサイズを変更するにはどうすればよいですか?
- 17. 構造体の名前として変数を設定するにはどうすればよいですか?
- 18. ファイルが存在するかどうかを確認するにはどうすればよいですか?
- 19. レポが存在するかどうかを確認するにはどうすればよいですか?
- 20. ルート「URL」が存在するかどうかを確認するにはどうすればよいですか?
- 21. メールアドレスが存在するかどうかを確認するにはどうすればよいですか?
- 22. ファイルが存在するかどうかを確認するにはどうすればよいですか?
- 23. リソースが存在するかどうかを確認するにはどうすればよいですか?
- 24. 複数のサイドバーの存在を確認するにはどうすればよいですか?
- 25. 構造体を解放するにはどうすればよいですか?
- 26. 構造体またはタプルを錆イテレータの状態にするにはどうすればよいですか?
- 27. superClassのオブジェクトにメンバー変数が存在するかどうかを確認しますか?
- 28. RawInput RAWKEYBOARD構造体をDirectInput DIK_定数に変換するにはどうすればよいですか?
- 29. 構造体をファイルに保存するにはどうすればいいですか?C lang
- 30. 構造体またはクラスのメンバーに問い合わせる
いいえ。プログラムがコンパイルされると、すばらしい変数名がすべて消えてメモリオフセットに置き換えられます。 – user4581301
クラス内に 'std :: map'が必要なのでしょうか? –
NathanOliver
または 'std :: set'となります。 –
Jarod42