The Boost Graph Library's class template adjacency_list supports several selectors that indicate what data structure should be used for the storage of edges or vertices. The selector vecS, for instance, indicates storage in a std::vector whereas listS indicates storage in a std::list. The Parallel BGL's distributed adjacency list supports an additional selector, distributedS, that indicates that the storage should be distributed across multiple processes. This selector can transform a sequential adjacency list into a distributed adjacency list.
template<typename ProcessGroup, typename LocalSelector = vecS> struct distributedS;
Copyright (C) 2005 The Trustees of Indiana University.
Authors: Douglas Gregor and Andrew Lumsdaine