Le code suivant contient des erreurs: AAA.cpp:23:15: required from here …/boost/include/boost/graph/subgraph.hpp:333:5: error: static assertion failed: (!is_same::value) AAA.cpp:27:21: error: no matching function for call to ‘add_vertex(foo(int, char**)::, Graph&)’ AAA.cpp:27:21: note: candidates are: …/boost/include/boost/graph/subgraph.hpp: In instantiation of ‘boost::subgraph::subgraph(boost::subgraph::vertices_size_type, const graph_property_type&) [with Graph = boost::adjacency_list; boost::subgraph::vertices_size_type = long unsigned int; boost::subgraph::graph_property_type = boost::no_property]’: #include #include #include #include #include […]
J’ai un graphe orienté donné par une masortingce et j’ai besoin d’écrire un programme (C ++) qui calcule son diamètre. Je suis vraiment perdu quand il s’agit de cela. Y a-t-il un algorithme connu pour cela? \ Comment je pense que cela devrait aller: convertir en graphe non orienté (pour toute masortingce dirigée [i] [j]! […]
J’essaie d’utiliser Boost pour incorporer un graphe planaire à l’aide de l’algorithme Chrobak-Payne. Je peux exécuter l’ exemple avec succès, mais lorsque j’essaie de le modifier et d’utiliser différents graphiques, il ne fonctionne pas correctement. J’essaie d’intégrer le deuxième graphe platonique, mais cela ne fonctionne pas et mon code plante avec “Erreur de segmentation: 11”. […]
Je ne parviens pas à essayer de colorer manuellement les sumts d’un graphique à l’aide de boost. J’ai écrit le code ci-dessous mais je ne peux pas comprendre pourquoi le fichier généré n’a aucune couleur. int main(int,char*[]) { typedef property EdgeProperties; typedef property<vertex_name_t, string, property> VertexProperties; typedef adjacency_list Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; […]
//// EDIT # 2: Supprimez toutes les informations précédentes et postez simplement le code de travail maintenant. La question précédente est devenue trop longue: #include #include using namespace std; template class Node{ T data; vector<Node*> adjacent; friend class Graph; public: int n; Node(T initData) : data(initData), n(0){} void addAdjacent(Node& other){ adjacent.push_back(&other); n++; } T getData(){ […]
J’essaie de comprendre le comportement de la création de sumt en utilisant la fonction add_edge. Voici un exemple: #include #include #include using namespace boost; typedef adjacency_list Graph; typedef graph_traits::vertex_iterator v_iter; Graph g; add_edge(1,2,g); add_edge(1,4,g); add_edge(2,3,g); add_edge(2,6,g); std::cout << "num edges: " << num_edges(g) << "; num vertices: " << num_vertices(g) << std::endl; for (std::pair vp […]
3la compilation suivante en utilisant boost.1.46.1 #include struct Node { int id; }; struct Edge { int source; int target; int weight; }; int main() { /* an adjacency_list like we need it */ typedef boost::adjacency_list Graph; typedef boost::graph_traits::vertex_descriptor Vertex; Graph gp1; std::cout << "Number of vertices 1: " << boost::num_vertices(gp1) << std::endl; Vertex v1 […]
Donc, je poste ceci car je travaille actuellement sur un projet d’algorithme et je vais peut-être utiliser la bibliothèque boost pour construire un graphique à partir d’un fichier texte d’entrée. J’ai donc remarqué qu’il y a un descripteur pour le sumt dans un graphique, mais comme j’ai un très grand graphique à construire, dois-je atsortingbuer […]
Quelques définitions d’abord: Définition 1 Un graphe G = (V, E) est appelé “ dense ” si pour chaque paire de sumts non adjacents u et v, d (u) + d (v)> = n où n = | V | et d (*) indique le degré du sumt * Définition 2 Un “cycle hamiltonien” sur […]
Je commence à décrire mon problème avec cette image: Sur la photo, on peut voir quelques points (points noirs ). Ce que je veux faire, c’est d’abord stocker tous les points, puis les points de nœud et les points de pointe (points rouges ). De plus, je dois vérifier si ces points rouges peuvent être […]