gpt4 book ai didi

c++ - 带有 initializer_list C++ 的图形 - 如何在没有 "Edge"字的 initializer_list 处创建边?

转载 作者:搜寻专家 更新时间:2023-10-30 23:59:23 26 4
gpt4 key购买 nike

我的图表构造函数:

Graph(std::initializer_list<Edge> list);

我的边缘构造函数:

Edge(int out, int in);

我想通过以下方式创建我的图表:

Graph g = { (1,2), (3,4), (5,1), (5,3)};

但如果我这样写,我只想编译成功:

Graph g = { Edge(1,2), Edge(3,4), Edge(5,1), Edge(5,3)};

如何在没有“Edge”字样的情况下在 initializer_list 中创建 Edge?

最佳答案

使用{}初始化每个成员;假设没有采用 initializer_list 的构造函数,它将选择双参数构造函数。

Graph g = { {1,2}, {3,4}, {5,1}, {5,3} };

但是,我发现这不适用于某些较旧的编译器,在这种情况下,您可能不得不回过头来编写 Edge

关于c++ - 带有 initializer_list<Edge> C++ 的图形 - 如何在没有 "Edge"字的 initializer_list 处创建边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16610267/

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