gpt4 book ai didi

c++ - 在 unordered_set 中插入一个新元素 : should the hint be end()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:26 24 4
gpt4 key购买 nike

如果我确定某个值还没有进入unordered_set,并且我要插入这样的值,传递这个集合end() 是否正确> 迭代器作为提示?

编辑:

代码:

#include <unordered_set>
using namespace std;

unordered_set<int> someset;

int main(){
auto it=someset.find(0);
if(it==someset.end()) someset.insert(it, 0); //correct? possible performance boost if the set is actually populated?
}

最佳答案

我想,你可以简单地调用insert函数和返回值将告诉您值是已插入,还是已存在于集合中。

auto p = someset.insert(value);
if (!p.second)
{
std::cout << "value was already present in the set" << std::endl;
}

实际上 p类型为 std::pair<iterator,bool> , 所以 p.second告诉您值是已插入还是已存在于集合中,并且 p.first是告诉您值位置的迭代器。

请记住,这比您的方法更快,因为我的解决方案减少了整体工作量。

关于c++ - 在 unordered_set 中插入一个新元素 : should the hint be end()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10163807/

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