C++设置了一个用于排序的比较器和另一个用于唯一性的比较器
C++ set with a comparator for sort and another for uniqueness
Edge 是一个包含 3 个字段的类:权重、from_vertex to_vertex。我想创建一个包含图形中所有唯一边缘的集合。(如果交换from_vertex和to_vertex - 并且权重相等 - 则它仍然是相同的边缘。另外,我希望这组按边缘的权重排序。这可以通过集合实现实现来实现吗,或者有更好的方法吗?
当然,这是可能的。但这只是因为您实际上不需要两个比较器。
基本思想是在元组<weight, min_vertex, max_vertex>
上按词法排序,其中min_vertex
是to_vertex
或from_vertex
中较小的一个,max_vertex
是较大的。当然,具有相同权重的两个相对边将具有相同的元组,并且没有相同权重的两个相对边将是不同的。该集合总体上将按权重排序,因为这是元组中最重要的元素。
这不会让你得到的一件事是,如果你知道from,to
但不知道重量,就能够搜索优势。同样,它不会使特定from,to
对的所有边都连续(当然,这与按权重排序不兼容(。如果你想要这种东西,你可能需要维护多个结构。
相关文章:
- std::设置自定义比较器
- C++中"std::sort"比较器的不同类型
- 将 std::set 与基于键的比较器一起使用
- 带自定义比较器的最小优先级队列
- 函数类作为比较器
- 优先级队列自定义比较器
- 什么是自定义比较器以及如何在 C++ 的排序函数中使用它?
- 没有默认构造函数作为模板参数的自定义比较器
- set_intersection使用自定义设置比较器
- 如何为集合 c++ 建立比较器
- C++复杂情况的比较器通过参数问题
- 对于BTreeMap和其他依赖于Ord的东西,是否有等效于C++比较器对象?
- 对没有比较器或λ函数的向量进行排序?
- "operator()"在重载运算符方法中是什么意思,在priority_queue(STL)中用作C++中的比较器?
- C++设置了一个用于排序的比较器和另一个用于唯一性的比较器
- 用于基于成员字段或函数创建比较器的快捷方式
- 定制比较器,用于使用多种排序键来实现排序
- 对象的比较器运算符,用于将其存储在地图中
- 如何编写用于set_symmetric_difference[C++]的字符串比较器
- 比较器,用于对包含指向自定义类对象的指针的向量进行排序