如何打印集合中的所有元素?

沃金

我很难打印出集合中的元素。

std::set<triple, Compare> edges;
for (int i = 0; i < n; i++)
            for (std::list<std::pair<int, int>>::iterator j = graph[i].begin(); j != graph[i].end(); j++)
                edges.insert(makeTriple((*j).second, i, (*j).first));

        for (std::set<triple, Compare>::iterator j = edges.begin(); j != edges.end(); j++)
            printf("%d and %d\n\n", (*j).first + 1, (*j).second + 1);

仅打印7个元素(共13个)。Compare函数如下:

bool operator()(const triple &a, const triple &b) const
    {
        if (a.distance == b.distance && a.first == b.first)
            return (a.second < b.second);
        if (a.distance == b.distance && a.second == b.second)
            return (a.first < b.first);
        return (a.distance < b.distance);
    }
泰德·林格莫

您的比较功能不满足要求

如果Compare在上下文调用中将调用的第一个参数以该类型所引发的严格弱排序关系中的第二个参数之前的形式出现,则在上下文转换为时应用于类型满足的对象的函数调用操作的返回值将bool产生truefalse

最明显的解决办法是:

bool operator()(const triple &a, const triple &b) const {
    if (a.distance == b.distance) {
        if(a.first == b.first)  return a.second < b.second;
        else                    return a.first < b.first;
    } else                      return a.distance < b.distance;
}

但是,可以使用来自以下位置的std :: tie来简化此操作<tuple>

bool operator()(const triple &a, const triple &b) const {
    return
        std::tie(a.distance, a.first, a.second) < std::tie(b.distance, b.first, b.second);
}

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java 8:如何比较集合中的所有元素

来自分类Dev

如何强制对集合中的所有元素进行错误验证?

来自分类Dev

Redis如何清除集合中的所有元素

来自分类Dev

C ++:如何在向量向量中打印所有元素

来自分类Dev

批准后如何打印列表中的所有元素?

来自分类Dev

如何在JOptionPane中打印所有数组元素?

来自分类Dev

C ++:如何在向量向量中打印所有元素

来自分类Dev

尽管计数为正,但无法打印集合中的所有元素

来自分类Dev

如何打印表的所有元素(INT)

来自分类Dev

打印<li>中的所有元素-BeautifulSoup

来自分类Dev

在MongoDB中,如何打印所有集合计数和索引?

来自分类Dev

如何在子查询中引用 JToken 集合中的所有元素

来自分类Dev

如何在Java中创建许多集合中所有元素的视图?

来自分类Dev

如何查找集合中的所有分区

来自分类Dev

如何在R中的单个字符串中打印矢量的所有元素?

来自分类Dev

如何使用带有 JSX 元素的 for 循环将集合的内容打印到 React Native 中的多个 <Text> 标签中?

来自分类Dev

删除集合中包含特定字符的所有元素

来自分类Dev

从集合中以随机顺序获取所有元素

来自分类Dev

特殊的minHeap,如何打印O(n)中的所有n个元素?

来自分类Dev

如何在编辑器中显示或打印大型python列表的所有元素

来自分类Dev

如何在Java中特定数组之后打印所有数组元素?

来自分类Dev

我如何修改脚本以打印mysql查询中的所有元素-php mysql JavaScript ajax

来自分类Dev

我如何通过js打印数组中的所有case元素

来自分类Dev

打印结构的所有元素

来自分类Dev

如何返回数组中不包含长类型的 Mongo db 集合中的所有文档,并更改这些元素的类型

来自分类Dev

打印出数组中的所有元素组合

来自分类Dev

不打印数组中的所有元素

来自分类Dev

如何在集合的元素之间打印逗号

来自分类Dev

如何从数组中删除所有元素

Related 相关文章

  1. 1

    Java 8:如何比较集合中的所有元素

  2. 2

    如何强制对集合中的所有元素进行错误验证?

  3. 3

    Redis如何清除集合中的所有元素

  4. 4

    C ++:如何在向量向量中打印所有元素

  5. 5

    批准后如何打印列表中的所有元素?

  6. 6

    如何在JOptionPane中打印所有数组元素?

  7. 7

    C ++:如何在向量向量中打印所有元素

  8. 8

    尽管计数为正,但无法打印集合中的所有元素

  9. 9

    如何打印表的所有元素(INT)

  10. 10

    打印<li>中的所有元素-BeautifulSoup

  11. 11

    在MongoDB中,如何打印所有集合计数和索引?

  12. 12

    如何在子查询中引用 JToken 集合中的所有元素

  13. 13

    如何在Java中创建许多集合中所有元素的视图?

  14. 14

    如何查找集合中的所有分区

  15. 15

    如何在R中的单个字符串中打印矢量的所有元素?

  16. 16

    如何使用带有 JSX 元素的 for 循环将集合的内容打印到 React Native 中的多个 <Text> 标签中?

  17. 17

    删除集合中包含特定字符的所有元素

  18. 18

    从集合中以随机顺序获取所有元素

  19. 19

    特殊的minHeap,如何打印O(n)中的所有n个元素?

  20. 20

    如何在编辑器中显示或打印大型python列表的所有元素

  21. 21

    如何在Java中特定数组之后打印所有数组元素?

  22. 22

    我如何修改脚本以打印mysql查询中的所有元素-php mysql JavaScript ajax

  23. 23

    我如何通过js打印数组中的所有case元素

  24. 24

    打印结构的所有元素

  25. 25

    如何返回数组中不包含长类型的 Mongo db 集合中的所有文档,并更改这些元素的类型

  26. 26

    打印出数组中的所有元素组合

  27. 27

    不打印数组中的所有元素

  28. 28

    如何在集合的元素之间打印逗号

  29. 29

    如何从数组中删除所有元素

热门标签

归档