【发布时间】:2011-09-08 06:12:32
【问题描述】:
我正在声明一个地图,例如map<string,int> registers。如何将其设置为特定大小以及如何将其所有值设置为零,以便稍后在映射值中插入值?
【问题讨论】:
-
您到底想将什么初始化为零?地图的默认构造函数创建空地图。您只能通过插入元素(如
m["str1"]=0或m.insert(std::map<std::string,int>::value_type("str2",0)))来增加地图的大小。 -
@Shadi:如果需要,您可以在
for循环中写入地图内容。 :) 你到底想做什么? -
还值得注意的是,如果“key”不在地图中,
map["key"]将返回 0(并将“key”插入地图)——因此,当您第一次访问它们 -
@Shadi - 从概念上讲,它们都为零。就像 Naveen 和 Cameron 所说,只要您使用
m[key]访问元素,它就会为零。你不必做任何事情! -
“将其设置为特定大小”是什么意思?映射的“大小”是它包含的键值对的数量。您可以在其中放置 30 个键来启动,但它们应该是哪些键,为什么?我认为你对这个东西的工作原理有一个根本的误解......