关于C++构造列表

来源:7-5 深度优先遍历和联通分量

Homo_sapiensQ

2017-10-31

	Component(Graph &graph):G(graph)
typename Graph::adjIterator adj(G,v);

这两行代码每次理解起来都比较困难,波波老师能否讲一下~上网百度也没看懂什么是构造列表

写回答

1回答

liuyubobobo

2017-10-31

随便翻了一个,我认为我讲也是这样。。。

http://www.cnblogs.com/BlueTzar/articles/1223169.html

简单地说,就是用graph初始化G。这里注意,由于G是一个引用,在C++语言中,我们只能使用构造列表的方式初始化G。


如果对C++语言不熟悉,这个课程的所有内容都配套有相应的Java代码,可以参考课程的官方github:https://github.com/liuyubobobo/Play-with-Algorithms


你写的第二行代码是使用G和v初始化Graph类下的adjIterator类的一个实例。这和初始化一个类是一样的,只不过adjIterator是Graph类下的一个内部类而已。adjIterator类我在课程中进行了具体实现,DenseGraph和SparseGraph下稍有不同,具体实现代码参见:

DenseGraph:https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/07-Graph-Basics/Course%20Code%20(C%2B%2B)/05-DFS-and-Components/DenseGraph.h

SparseGraph:https://github.com/liuyubobobo/Play-with-Algorithms/blob/master/07-Graph-Basics/Course%20Code%20(C%2B%2B)/05-DFS-and-Components/SparseGraph.h


0
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程