C++ boost图形库示例Kevin Bacon的六度:示例中的Vertex()是什么
我试图学习Boost图形库,遇到了一个名为“Kevin Bacon的六度”的示例。这是网址 在这个例子中,我看到:C++ boost图形库示例Kevin Bacon的六度:示例中的Vertex()是什么,c++,boost,C++,Boost,我试图学习Boost图形库,遇到了一个名为“Kevin Bacon的六度”的示例。这是网址 在这个例子中,我看到: ... boost::tie(pos, inserted) = actors.insert(std::make_pair(actors_name, Vertex())); ... Vertex()指的是什么 我看到一个名为Vertex的别名在Vertex()上方几行,如下所示,但我不明白Vertex()的用途: typedef graph_traits<Graph>:
...
boost::tie(pos, inserted) = actors.insert(std::make_pair(actors_name, Vertex()));
...
Vertex()
指的是什么
我看到一个名为Vertex
的别名在Vertex()
上方几行,如下所示,但我不明白Vertex()
的用途:
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef图形特征::顶点描述符顶点;
有人能帮我理解这个吗?我是个新手,感觉自己已经迷路了这些文档很难通读和理解 谢谢。用于记录演员与其他演员的联系。如果他们出现在同一部电影中,他们就有直接的联系 示例中使用的顶点如下所述: 这一行:
boost::tie(pos, inserted) = actors.insert(std::make_pair(actors_name, Vertex()));
尝试插入带有参与者名称和默认构造(空)顶点的对
。如果失败(inserted==false
),那是因为参与者已经存在,并且pos
将指向现有的对
,其中顶点
至少已经有一个连接。如果成功,pos
将指向新插入的对
,并带有一个空的顶点
后面的add_edge
步骤连接了两个参与者。处理完文件后,您将看到文件中所有参与者如何连接(通过边缘)的图形。用于记录参与者与其他参与者的连接。如果他们出现在同一部电影中,他们就有直接的联系
示例中使用的顶点如下所述:
这一行:
boost::tie(pos, inserted) = actors.insert(std::make_pair(actors_name, Vertex()));
尝试插入带有参与者名称和默认构造(空)顶点的对
。如果失败(inserted==false
),那是因为参与者已经存在,并且pos
将指向现有的对
,其中顶点
至少已经有一个连接。如果成功,pos
将指向新插入的对
,并带有一个空的顶点
后面的add_edge
步骤连接了两个参与者。处理完文件后,您将得到一个文件中所有参与者如何连接(通过边)的图形。您可以在图形中插入两个对象:顶点和边。因此,演员是一个顶点,而边缘是与他们一起主演的人。因此,本例将把所有的参和者作为顶点插入,把它们之间的所有连接作为边插入。因此,演员是一个顶点,而边缘是与他们一起主演的人。所以这个例子将插入所有的演员作为顶点,他们之间的所有连接作为边。嗨,泰德,非常感谢。顶点和边对我来说很清楚。我的问题是为什么我们需要这行中的Vertex()函数?boost::tie(pos,inserted)=actors.insert(std::make_pair(actors_name,Vertex())@user3512999哦,那不是一个函数。默认情况下,它构造一个放置在对中的顶点
。如果参与者不在图中,它将从一个没有边的顶点开始。谢谢Ted。我现在明白了。@user3512999。。。如果回答了你的问题,请考虑回答:-嗨,Ted,非常感谢你。顶点和边对我来说很清楚。我的问题是为什么我们需要这行中的Vertex()函数?boost::tie(pos,inserted)=actors.insert(std::make_pair(actors_name,Vertex())@user3512999哦,那不是一个函数。默认情况下,它构造一个放置在对中的顶点
。如果参与者不在图中,它将从一个没有边的顶点开始。谢谢Ted。我现在明白了。@user3512999。。。如果回答了你的问题,请考虑答案: