読者です 読者をやめる 読者になる 読者になる

Boost.Graph 頂点と辺の数を取得

C++

頂点数はboost::num_vertices(g)で取得でき、
辺の数はboost::num_edges(g)で取得できます。

#include <iostream>
#include <vector>
#include <boost/graph/adjacency_list.hpp>
#include <boost/assign/list_of.hpp>

typedef boost::adjacency_list<boost::listS, boost::vecS, boost::directedS,
    boost::no_property, boost::property<boost::edge_weight_t, int> > Graph;
typedef std::pair<int, int> Edge;

enum { A, B, C, D, E, N };

int main()
{
    const std::vector<Edge> edges = boost::assign::list_of<Edge>
        (A, B)(B, E)
        (A, C)(C, E)
        (A, D)(D, E)
    ;

    const Graph g(edges.begin(), edges.end(), N);

    const std::size_t v = boost::num_vertices(g);
    const std::size_t e = boost::num_edges(g);

    std::cout << "vertex count : " << v << std::endl;
    std::cout << "edge count : " << e << std::endl;
}
vertex count : 5
edge count : 6