我需要检查 QSet
是否包含某个值,如果不存在,我想插入它并返回一个 bool 值,指示该值是否已插入 (true
) 或者它是否已经存在 (false
)。我的问题是如何有效地做到这一点。下面的代码实际上是计算散列并搜索集合两次。这是非常低效的。
QSet<QString> names;
bool inserted = false;
QString name = "Dave";
if (!names.contains(name))
{
inserted = true;
names.insert(name);
}
最佳答案
好的,发布问题后我立即意识到这很简单。无论如何,我想我会把问题留给其他人。
int size = names.count();
names.insert(name);
bool inserted = names.count() > size;
关于c++ - 有效地测试 QSet 是否包含元素,如果不存在则插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47381099/