gpt4 book ai didi

c++ - 在插入之前检查元素是否存在于 unordered_set 中

转载 作者:行者123 更新时间:2023-11-28 01:56:03 26 4
gpt4 key购买 nike

我想问一下在插入元素之前是否需要检查 unorderd_set 中是否存在元素?根据documentation :

Each element is inserted only if it is not equivalent to any other element already in the container (elements in an unordered_set have unique values).

因此,如果我在我的情况下正确理解:

Element *element = new Element;
//...
if ( my_set.find (element) == my_set.end() )
my_set.insert(element);

这不是必需的 - 对吗?如果我尝试插入已经在集合中的元素,实际会发生什么。它做的检查和我做的完全一样吗?

最佳答案

如果您尝试插入一个已经存在的值,该集合将保持不变。该调用将返回一个包含迭代器和 bool 值的对。如果项目已经存在,则 bool 值将为 false。

http://en.cppreference.com/w/cpp/container/unordered_set/insert

请注意,在集合包含指针的情况下,它只会阻止您拥有重复的指针,而不是重复的内容。例如,

如果您的 Element 对象表示一个元素,例如氧气,它可能包含一个原子序数值和一个名称字符串。如果您只想让氧气出现一次,一组指针不会自动执行此操作。

关于c++ - 在插入之前检查元素是否存在于 unordered_set 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41151938/

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