プロが教えるわが家の防犯対策術!

C++でSTLのMAPを勉強しだしたのですが、
よく分からない部分を見つけました。

以下のようにmapを使う際に、
mapコンテナの宣言をするのは理解できたのですが、

map<string, int> mmbr ; // (string型,int型)の対データを管理
map<int, int> ikk ; //(int型,int型)の対データを管理

他人が作成したサンプルを見ていたら、
以下のようにmapのコンテナ宣言がされていました。

*********************************************************
typedef KEY key_type;
typedef typename std::map<key_type, value_type> container_type;
*********************************************************

1行目でtypedefしているだけなので理解できるのですが、
2行目で行っているmapコンテナの宣言の意味が
どうも意味が分からないでいます。
mapコンテナの宣言で、
<string, int>や<int, int>のようにせず、
<key_type, value_type>としているのは、
どういう意味なのでしょうか?
どうぞ宜しくお願い致します。

A 回答 (1件)

単に、


>typedef KEY key_type;
を変えたら、
>typedef typename std::map<key_type, value_type> container_type;
を変更しなくても変わるようにしているだけなのでは。
(value_typeがどこにあるか知らないけど。)

どうもtemplateクラスのような希ガス。
    • good
    • 0
この回答へのお礼

確かに、
上の方にtempleteクラスが記述されていました!
何となく理解できました。
ありがとうございました!

お礼日時:2009/05/08 18:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!