假设我在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)
令我担心的是,我只是说"会有一个地图,它会设置为值",但我从未真正创建过这些设置,我只是开始向它们插入元素.
如果这是不好的做法,那么正确的方法是什么?
执行此操作时myMap[key],如果密钥不存在,则将为您创建密钥数据对.因此,set意志永远存在.
返回对映射到等效于key的键的值的引用,如果此类键尚不存在则执行插入.
[强调我的]
所以我对这个问题的回答是,这不是一种不好的做法,而且这是正确的做法.