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

Flo*_*lla 1 c++ dictionary

假设我在C++中有一个映射,其中字符串作为键,整数组作为值,我将在从某些源读取时添加对(即:我无法在代码中初始化映射,因为我不知道什么键将从源头读取).使用map ["someKey"]来插入(someIntValue)时,在阅读时动态添加元素是不好的做法?

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

map<string, set<int>> myMap;
while (reading_from_source(something)){
    string key=obtainKeyFromSource();
    myMap[key].insert(obtainIntFromSource());
}
Run Code Online (Sandbox Code Playgroud)

令我担心的是,我只是说"会有一个地图,它会设置为值",但我从未真正创建过这些设置,我只是开始向它们插入元素.

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

Som*_*ude 6

执行此操作时myMap[key],如果密钥不存在,则将为您创建密钥数据对.因此,set意志永远存在.

这个std::map::operator[]参考:

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

[强调我的]

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