2013-03-23 77 views
0

我有一个接受字符串的地图,它返回一个整数。我希望地图实例的整数初始化为0.我该怎么做?例如:如何给地图赋予默认值?

std::map<std::string, int> x; 

我希望所有的整数被初始化为0作为他们的出发点。我该怎么做呢?

+0

它们隐含地为0.当你访问一个以前没有插入过的密钥时,它将被初始化为0.所以,例如'x [someKey] ++'会在指定的密钥存储'1'以前不存在。 – leemes 2013-03-23 23:58:08

回答

1

只需访问某个键将默认初始化其相应的值。对于int,即相当于将其设置为0:

x["foo"]; 

虽然,说实话,它会更容易阅读为x["foo"] = 0;

+0

事情是我不知道'foo'是什么。它由用户输入。但我想这解决了我的问题。谢谢。 – 2013-03-23 23:37:54

+0

@MemyselfandI如果你不知道密钥是什么,你的地图里没有任何值。值与键相关联。如果有N个密钥,则有N个值。 – 2013-03-23 23:38:43

+0

它不是值 - 初始化值?它插入'T()'。据我所知,默认初始化的int是未初始化的,比如这里:struct S {int i;} s; //s.i=?' – chris 2013-03-24 01:39:27