1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| #include <iostream>
#include <boost/graph/adjacency_list.hpp>
using namespace std;
using namespace boost;
//vertex
struct VertexProperties
{
int id;
int label;
VertexProperties()= default;
VertexProperties(unsigned i, unsigned l) : id(i), label(l) {}
};
//edge
struct EdgeProperties
{
unsigned id;
unsigned label;
EdgeProperties()= default;
EdgeProperties(unsigned i, unsigned l) : id(i), label(l) {}
};
//Graph
struct GraphProperties
{
unsigned id;
unsigned label;
GraphProperties()= default;
GraphProperties(unsigned i, unsigned l) : id(i), label(l) {}
};
//adjency list
typedef boost::adjacency_list<
boost::vecS, boost::vecS, boost::directedS,
VertexProperties,
EdgeProperties,
GraphProperties
> Graph;
//iterators
typedef boost::graph_traits<Graph>::vertex_descriptor vertex_t;
typedef boost::graph_traits<Graph>::edge_descriptor edge_t;
/***********************************************/
int main()
{
Graph g;
vertex_t v1 = boost::add_vertex(VertexProperties(1,10),g);
vertex_t v2 = boost::add_vertex(VertexProperties(2,20),g);
edge_t e1= boost::add_edge(EdgeProperties(3,55),g);
std::cout << "Vertice: " <<num_vertices(g) << std::endl;
std::cout << "edges: " <<num_edges(g) << std::endl;
return 0;
} |
Partager