有效地测试 QSet 是否包含元素,如果不存在,则插入
efficiently test if QSet contains element and insert if it is not there
我需要检查QSet
是否包含某个值,如果它不存在,我想插入它并返回一个布尔值,指示该值是否已插入(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;
相关文章:
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 如果仍然不满足要求,如何使 if 语句重复?
- 如果 const 不分配内存,为什么我可以获取 const 的地址?
- 如果我不知道每个列表中有多少个数字,我如何将给定数量的数字列表作为输入?
- 如果用户不小心给出了不正确的数据类型,cin 如何工作?
- 如果语句不包括文本行?
- 如果索引不是整数,我们如何在 C++ 中插入哈希表
- 如果语句不会在 do - while 循环中运行
- 如果我们不从 std::qsort 返回 0 会发生什么?
- 如果键不存在,使用 [] 运算符访问 STL Map 元素会添加新元素
- 如果我们不创建一个新节点并使用指针插入数据并建立链接(在链表中)怎么办?
- 如果我不使用"新"关键字,为什么会出现细分错误?
- 如果 copts 不允许系统路径,如何引用外部依赖项使用的系统库?
- 你怎么编码,如果x不等于一个数字,程序就会退出
- 如果检查不起作用,则 C++
- 文档在哪里说明如果参数不是从末端删除参数,则无法从QT信号插槽连接中删除参数?
- 如果方法不进行类型检查,为什么C++模板匹配?
- 如果t不是不可或缺的,则如何禁用非空std ::设置为函数参数
- 如果容器不重新分配,STL 的priority_queue会重新分配吗?
- 如果我不将预先编写的字符串保存到变量,它还在内存中吗?