假设容器值会自动创建,这是不好的做法吗?

时间:2017-06-29 12:42:22

标签: c++ dictionary

让我们说我在C ++中有一个地图,其中字符串作为键和一组整数作为值,我将在从某些来源读取时添加这些对(即:我无法初始化地图在代码中,因为我不知道将从源读取哪些键。使用map [" someKey"]。insert(someIntValue)?

在阅读时动态地向集合中添加元素是不好的做法

我的意思是这样的(不是真正的代码,只是一个例子):

NSBox

令我担心的是,我只会说#34;会有一张地图,它会设置为值"但我从未真正创建过那些集合,我刚开始向它们插入元素。

如果这是不好的做法,那么正确的方法是什么?

1 个答案:

答案 0 :(得分:6)

执行myMap[key]时,如果密钥不存在,则密钥数据对将为创建。所以set将永远存在。

来自this std::map::operator[] reference

  

返回对映射到等效于键的键的值的引用,如果此类键尚不存在则执行插入

[强调我的]

所以我对这个问题的回答是,这不是一种不好的做法,而且这是正确的做法。