gpt4 book ai didi

C++ 设置了一个用于排序的比较器和另一个用于唯一性的比较器

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

Edge 是一个包含 3 个字段的类:weight、from_vertex、to_vertex。我想创建一个包含图中所有唯一边的集合。 (如果 from_vertex 和 to_vertex 被交换 - 并且权重相等 - ,它仍然是相同的边。)另外,我希望这个集合按边的权重排序。这可以通过集合实现实现还是有更好的方法?

最佳答案

当然,这是可能的。但只是因为您实际上并不需要两个比较器。

基本思想是对元组 <weight, min_vertex, max_vertex> 进行词法排序, 其中min_vertexto_vertex 中的较小者或 from_vertex , 和 max_vertex是越大。当然,具有相同权重的两条相对边将具有相同的元组,而相同权重的两条相对边将是不同的。该集合将整体按权重排序,因为这是元组中最重要的元素。

如果您知道 from,to,这不会给您的一件事是搜索边的能力但是不知道重量。同样,它不会生成特定 from,to 的所有边对连续(当然,这与按重量排序不兼容)。如果您想要那种东西,您可能需要维护多个结构。

关于C++ 设置了一个用于排序的比较器和另一个用于唯一性的比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52390786/

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