Range Node1 Range + Range() + Range() + Range() + operator=() + operator=() + Range() + Range() + build() + build() + clear() and 28 more... Node2 std::vector< field > Node2->Node1 -m_fields Node3 Range::field - m_minimum - m_maximum - m_indices - m_previous - m_next - m_mode - m_continuation_mode + field() + field() + field() + field() + field() + is_valued() + has_minimum() + has_maximum() + wrap_around() + get_mode() and 29 more... - check_for_both_bounded() - create_index_table() - set_indices() Node3->Node2 +elements Node4 std::vector< size_type > + elements Node4->Node3 -m_indexes Node5 std::vector< element _type > + elements Node5->Node3 -m_values