gpt4 book ai didi

c++ - 假设容器值会自动创建是不好的做法吗?

转载 作者:行者123 更新时间:2023-11-30 00:45:04 25 4
gpt4 key购买 nike

假设我在 C++ 中有一个映射,其中字符串作为键,整数集作为值,我将在从某些源读取时添加这些对(即:我无法在代码中初始化映射,因为我不'知道将从源中读取哪些键)。在读取时使用 map["someKey"].insert(someIntValue) 向集合动态添加元素是否是一种不好的做法?

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

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

让我担心的是,我只是说“会有一张 map ,它会有集合作为值”,但我从未真正创建过这些集合,我只是开始向它们插入元素。

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

最佳答案

当您执行 myMap[key] 时,如果键不存在,则将为您创建键数据对。所以 set 将始终存在。

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

Returns a reference to the value that is mapped to a key equivalent to key, performing an insertion if such key does not already exist.

[强调我的]

所以我对这个问题的回答是,这不是坏习惯,而且是正确的做法。

关于c++ - 假设容器值会自动创建是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44825463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com