ewe*_*ton 2 c++ initializer-list c++11
我的图形构造函数:
Graph(std::initializer_list<Edge> list);
Run Code Online (Sandbox Code Playgroud)
我的边缘构造函数:
Edge(int out, int in);
Run Code Online (Sandbox Code Playgroud)
我想通过以下方式创建我的图表:
Graph g = { (1,2), (3,4), (5,1), (5,3)};
Run Code Online (Sandbox Code Playgroud)
但是如果我写的话,我只想要一个成功的编译:
Graph g = { Edge(1,2), Edge(3,4), Edge(5,1), Edge(5,3)};
Run Code Online (Sandbox Code Playgroud)
如何在没有"Edge"字的情况下在initializer_list创建边缘?
使用{}初始化每个成员; 这将选择双参数构造函数,假设没有构造函数采用initializer_list.
Graph g = { {1,2}, {3,4}, {5,1}, {5,3} };
Run Code Online (Sandbox Code Playgroud)
但是,我发现这对一些较旧的编译器不起作用,在这种情况下,你可能不得不回到写作Edge.