Sequoia
|
Public Types | |
using | connectivity_type = Connectivity |
using | nodes_type = Nodes |
using | edge_init_type = typename Connectivity::edge_init_type |
using | edge_index_type = typename Connectivity::edge_index_type |
using | size_type = std::common_type_t< typename Connectivity::size_type, typename Nodes::size_type > |
using | pseudo_iterator = graph_impl::pseudo_iterator< Connectivity, Nodes > |
using | edges_initializer = std::initializer_list< std::initializer_list< edge_init_type > > |
Public Member Functions | |
constexpr | graph_primitive (edges_initializer edges) |
constexpr | graph_primitive (edges_initializer edges) |
constexpr | graph_primitive (edges_initializer edges, std::initializer_list< node_weight_type > nodeWeights) |
template<class... NodeWeights> requires heterogeneous_nodes<graph_primitive> | |
constexpr | graph_primitive (edges_initializer edges, NodeWeights &&... nodeWeights) |
template<tree_link_direction dir> requires ( !heterogeneous_nodes<graph_primitive> && ((dir == tree_link_direction::symmetric) || is_directed(Connectivity::flavour))) | |
constexpr | graph_primitive (std::initializer_list< tree_initializer< node_weight_type > > forest, tree_link_direction_constant< dir > tdc) |
template<tree_link_direction dir> requires ( !heterogeneous_nodes<graph_primitive> && ((dir == tree_link_direction::symmetric) || is_directed(Connectivity::flavour))) | |
constexpr | graph_primitive (tree_initializer< node_weight_type > tree, tree_link_direction_constant< dir > tdc) |
constexpr | graph_primitive (const graph_primitive &)=default |
constexpr size_type | size () const noexcept |
constexpr void | swap_nodes (edge_index_type i, edge_index_type j) |
template<class Compare > | |
constexpr void | sort_nodes (Compare c) |
template<class Compare > | |
constexpr void | sort_nodes (const edge_index_type first, const edge_index_type last, Compare c) |
Protected Member Functions | |
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (const EdgeAllocator &edgeAlloc, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires (enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (const EdgeAllocator &edgeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc) |
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, std::initializer_list< node_weight_type > nodeWeights, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, std::initializer_list< node_weight_type > nodeWeights, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, class... NodeWeights> requires heterogeneous_nodes<graph_primitive> | |
constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, NodeWeights &&... nodeWeights) |
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc) |
template<alloc EdgeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (const graph_primitive &in, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (const graph_primitive &in, const EdgeAllocator &edgeAlloc, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (const graph_primitive &in, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc) |
template<alloc EdgeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (const graph_primitive &in, const EdgeAllocator &edgeAlloc) |
constexpr | graph_primitive (graph_primitive &&) noexcept=default |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (graph_primitive &&in, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
constexpr | graph_primitive (graph_primitive &&in, const EdgeAllocator &edgeAlloc, const NodeAllocator &nodeAlloc) |
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (graph_primitive &&in, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc) |
template<alloc EdgeAllocator, alloc NodeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
constexpr | graph_primitive (graph_primitive &&in, const EdgeAllocator &edgeAlloc) |
constexpr graph_primitive & | operator= (graph_primitive &&) noexcept=default |
constexpr graph_primitive & | operator= (const graph_primitive &)=default |
void | swap (graph_primitive &rhs) noexcept(noexcept(this->Connectivity::swap(rhs)) &&noexcept(this->Nodes::swap(rhs))) |
void | reserve_nodes (const size_type size) |
size_type | node_capacity () const noexcept |
void | shrink_to_fit () |
template<class... Args> | |
size_type | add_node (Args &&... args) |
template<class... Args> | |
size_type | insert_node (const size_type pos, Args &&... args) |
void | erase_node (const size_type node) |
void | clear () noexcept |
template<tree_link_direction dir, class... Args> | |
size_type | insert_node_to_tree (tree_link_direction_constant< dir >, size_type pos, size_type parent, Args &&... args) |
template<tree_link_direction dir, class... Args> | |
size_type | add_node_to_tree (tree_link_direction_constant< dir > tldc, size_type parent, Args &&... args) |
Static Protected Attributes | |
template<class N > | |
static constexpr bool | enableNodeAllocation {!heterogeneous_nodes<graph_primitive> && !std::is_empty_v<N>} |
Friends | |
constexpr bool | operator== (const graph_primitive &, const graph_primitive &) noexcept=default |