num_out_edges()
関数とかはないので、out_edges()
で得られたRangeの要素をカウントする。
#include <iostream>
#include <boost/graph/adjacency_list.hpp>
#include <boost/range/distance.hpp>
using Graph = boost::adjacency_list<
boost::listS,
boost::vecS,
boost::directedS
>;
using Edge = std::pair<int, int>;
enum {A, B, C, D, N};
int main()
{
const std::vector<Edge> edges {
{A, B},
{A, C},
{B, D},
{C, D}
};
const Graph g(edges.begin(), edges.end(), N);
const std::size_t num_out_edges = boost::distance(out_edges(A, g));
std::cout << num_out_edges << std::endl;
}
出力:
2
追記:2014/06/06 17:54
out_degree()
(出次数)を使えばいいようです。
#include <iostream>
#include <boost/graph/adjacency_list.hpp>
#include <boost/range/distance.hpp>
using Graph = boost::adjacency_list<
boost::listS,
boost::vecS,
boost::directedS
>;
using Edge = std::pair<int, int>;
enum {A, B, C, D, N};
int main()
{
const std::vector<Edge> edges {
{A, B},
{A, C},
{B, D},
{C, D}
};
const Graph g(edges.begin(), edges.end(), N);
std::size_t num_out_edges = out_degree(A, g);
std::cout << num_out_edges << std::endl;
}
出力:
2