我在Visual C ++应用程序中遇到过这种情况
extern map<string, rpcfn_type> mapCallTable;
或
map<string, string>
这是什么意思?
。不是地图的东西,而是<string, string>
部分
答案 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
。