• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:templete における typedef)

typedefで型指定しておくという項目について

このQ&Aのポイント
  • C++の初心者用的な本で紹介されていたtypedefで型指定しておくという項目について質問があります。
  • typedefで型指定しておくのは、クラステンプレートを多用する場合によく使われる手法です。
  • typedefを使うことで、長いクラステンプレートの型名を短い名前に置き換えることができ、コードの可読性が向上します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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; }

stadiumk
質問者

お礼

なるほどです! 比較例もあったため、すごく分かりやすかったです! わざわざ使用している意味など、 よく理解知る事ができました! ありがとうございました。

関連するQ&A