2
我有一個提升圖(捆綁屬性)。我想查找圖中是否已經存在具有特定值的頂點。有人可以幫我弄這個嗎?在這裏,我提出我的現有代碼MWE:如何查找升壓圖中是否存在頂點?
#include <iostream>
#include <string>
#include <vector>
#include <boost/graph/adjacency_list.hpp>
struct mytuple
{
int e1;
int e2;
int s;
bool operator==(const mytuple& a) const
{
return ((e1 == a.e1) && (e2 == a.e2) && (s == a.s));
}
};
struct MyVertex {
std::string comments;
int field1;
mytuple value;
MyVertex(std::string comments = std::string()) : comments(comments) {}
};
struct MyEdge {
std::string label;
MyEdge(std::string label = std::string()) : label(label) {}
};
// Define the graph with the vertex as a mytuple and the vertices container as a vector
using MyTree = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, MyVertex, MyEdge>;
using Vertex = boost::graph_traits<MyTree>::vertex_descriptor; // Define Vertex
using VertexItr = boost::graph_traits<MyTree>::vertex_iterator; // Define Vertex iterator
using Edge = std::pair<boost::graph_traits<MyTree>::edge_descriptor, bool>; // Define Edge
using EdgeItr = boost::graph_traits<MyTree>::edge_iterator; // Define Edge Iterator
int main()
{
MyTree mytree;
Vertex v1 = boost::add_vertex(mytree);
mytree[v1].value = {1, 1, 1};
Vertex v2 = boost::add_vertex(mytree);
mytree[v2].value = {2, 2, 2};
Vertex v3 = boost::add_vertex(mytree);
mytree[v3].value = {3, 3, 3};
// Perhaps add some edges
std::cout << "I want to find if my graph has a vertex containing the value {1, 1, 1}";
// mytree.findvertex(with value {1, 1, 1})
}
非常有幫助!非常感謝你。 – jsp99