gpt4 book ai didi

c++ - set_intersection 可以与 C++ 中的 hash_set 一起使用吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:23:09 25 4
gpt4 key购买 nike

我正在计算集合的交集、并集和差集。我有一个我设置类型的 typedef:

typedef set<node_type> node_set;

替换为

typedef hash_set<node_type> node_set;

结果不同。这是一个复杂的程序,在我开始调试之前——我做对了吗?当我使用这样的函数时:

set_intersection(v_higher.begin(), v_higher.end(), neighbors[w].begin(), neighbors[w].end(), 
insert_iterator<node_set>(tmp1, tmp1.begin()));
  • 他们应该与 set 和 hash_set 无缝协作吗?

最佳答案

我不这么认为。

One of the pre-condition of set_intersection 是:

  • [first1, last1)根据 operator< 升序 .也就是说,对于每一对迭代器 ij[first1, last1)这样 i先于 j , *j < *i是假的。

hash_set (和unordered_set)是无序的,所以不能满足有序条件。

参见 tr1::unordered_set union and intersection关于如何相交 unordered_set

关于c++ - set_intersection 可以与 C++ 中的 hash_set 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435497/

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