这在C ++中意味着什么

时间:2011-05-04 20:25:48

标签: c++

我在Visual C ++应用程序中遇到过这种情况

extern map<string, rpcfn_type> mapCallTable;

 map<string, string>

这是什么意思?

。不是地图的东西,而是

<string, string> 

部分

3 个答案:

答案 0 :(得分:10)

这些是模板参数; map是一个类模板,在你告诉它将使用的类型之前它是不完整的。第一个是密钥的类型,第二个是通过密钥存储的数据类型。

答案 1 :(得分:1)

std::map是一个模板。您可以使用它来创建具有密钥的类型以及与该密钥关联的一些数据。尖括号是指定这两种类型的位置,因此(例如),map<string, string>定义了一个使用一个字符串作为键的类型,并且具有与第一个字符串相关联的另一个字符串。

可能更容易理解的是:

struct person {        
    string name;
    string email_address;
    phone_number home;
    phone_number mobile;
};

map<string, person> people;

这让我(例如)使用昵称作为查找某个人的姓名,电子邮件地址,电话号码等的密钥。

答案 2 :(得分:0)

您不能单独使用<string, string>部分,因为它是map的修饰符。

map是模板类型,<string, string>是指它使用的类型。 map<string, string>表示map,其密钥类型为string,其值类型也为string