这是我从here下载的Alex Allain的电子书“Jumping into C ++”中的一个例子。在页面207他有这段代码:
#include <map>
#include <string>
using namespace std;
map<string, string> name_to_email;
我的问题是,请问,最后一行的含义是什么,特别是“<
”和“>
”的重要性。这行可以写成map < string, string > name_to_email;
,也就是说我插入它们时必须没有空格?
答案 0 :(得分:4)
该表示法指定模板参数。
答案 1 :(得分:3)
该行可以写成map&lt; string,string&gt; name_to_email;也就是说我必须插入空格吗?
空间很好。
我的问题是,请问,最后一行的含义是什么,特别是“&lt;”的重要性和“&gt;”。
正如@Cyber所说,它们是模板参数。这是在C ++中使用变量类型的方式。而不是为每种类型设置地图,例如StringToIntMap
和StringToCharMap
以及CharToStringMap
和StringToStringMap
等。只有一张地图,可以使用任何类型。所以map<string, int>
本质上是一个将字符串作为键并将其作为值映射到int的映射。
答案 2 :(得分:2)
正如Cyber所说,符号指定了模板参数。如果您阅读了this链接以了解地图的内容,则可以看到在定义地图时,您需要指定地图的两个部分。关键和价值。在上面的示例中,您将创建一个字符串映射,可以通过字符串键访问。
map<key, value>
。所以在上面的另一个答案中,如果你想存储可以通过字符串键访问的整数,你可以创建一个这样的地图map<string, int> lMyMap