- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:templete における typedef)
typedefで型指定しておくという項目について
このQ&Aのポイント
- C++の初心者用的な本で紹介されていたtypedefで型指定しておくという項目について質問があります。
- typedefで型指定しておくのは、クラステンプレートを多用する場合によく使われる手法です。
- typedefを使うことで、長いクラステンプレートの型名を短い名前に置き換えることができ、コードの可読性が向上します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
よくあるのは、イテレータとか値の型とかを使う場合ですね。 mapの例ですとtypedefを使わない場合 std::map<std::string, int> dic; dic.insert(std::map<std::string, int>::value_type("First", 1)); std::map<std::string, int>::const_iterator it = dic.find(std::map<std::string, int>::key_type("First")); if (it != dic.end()) { std::cout << it->first.c_str() << " : " << it->second << std::endl; } といった感じで、何度もstd::map<std::string, int>が出現し、 醜くなるし、value_typeがint→shortとかになった場合は全部変更しないといけません。 typedefしておけばすっきりします。 typedef std::map<std::string, int> mymap; mymap dic; dic.insert(mymap::value_type("First", 1)); mymap::const_iterator it = dic.find(mymap::key_type("First")); if (it != dic.end()) { std::cout << it->first.c_str() << " : " << it->second << std::endl; }
お礼
なるほどです! 比較例もあったため、すごく分かりやすかったです! わざわざ使用している意味など、 よく理解知る事ができました! ありがとうございました。