Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream> // für std::cout
- #include <utility> // für std::pair
- #include <boost/graph/graph_traits.hpp>
- #include <boost/graph/adjacency_list.hpp>
- using namespace boost;
- struct Kanteneigenschaften{
- int Kantengewicht;
- };
- struct Knoteneigenschaten
- {
- float Modularity;
- };
- int main()
- {
- // Graph-Typen definieren.
- typedef adjacency_list<vecS, vecS, undirectedS, Knoteneigenschaten, Kanteneigenschaten> Graph;
- typedef std::pair<int, int> Kante;
- // Kanten erstellen.
- enum { A, B, C, D, E, N };
- const int knotenanzahl = N;
- Kante kantenarray[] =
- {
- Kante(A,B), Kante(A,D), Kante(C,A), Kante(D,C),
- Kante(C,E), Kante(B,D), Kante(D,E)
- };
- //Anzahl der Kanten
- const int kantenanzahl = sizeof(kantenarray) / sizeof(kantenarray[0]);
- // Eigenschaften festlegen.
- Kanteneigenschaften eigenschaften[] =
- {
- {1},
- {2},
- {2},
- {3},
- {3},
- {5},
- {5},
- };
- // Eigentlichen graphen erstellen.
- Graph g(kantenarray, kantenarray+kantenanzahl, eigenschaften, knotenanzahl);
- // Name der ersten Kante ändern.
- //g[*edges(g).first].Name = "Test";
- // Alles ausgeben.
- graph_traits<Graph>::edge_iterator e, eend;
- std::cout << "edges(g) = { ";
- for (tie(e,eend) = edges(g); e!=eend; ++e)
- {
- Kanteneigenschaften& p = g[*e];
- std::cout << "(" << p.Kantengewicht << ") ";
- }
- std::cout << "}" << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement