Yggdrasill  0.2
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
ygg::dyn_segtree_internal::InnerNode< Base, OuterNode, KeyT_in, ValueT_in, AggValueT_in, Combiners, Tag > Class Template Reference

Representation of either a start or an end of an interval. More...

#include <dynamic_segment_tree.hpp>

Inheritance diagram for ygg::dyn_segtree_internal::InnerNode< Base, OuterNode, KeyT_in, ValueT_in, AggValueT_in, Combiners, Tag >:

Public Types

using KeyT = KeyT_in
 The type of the key (i.e., the interval bounds)
 
using ValueT = ValueT_in
 The type of the value associated with the intervals.
 
using AggValueT = AggValueT_in
 The type of the aggregate value.
 

Public Member Functions

KeyT get_point () const noexcept
 Returns the point at which the event represented by this InnerNode happens. More...
 
bool is_start () const noexcept
 Returns true if this InnerNode represents an interval start. More...
 
bool is_end () const noexcept
 Returns true if this InnerNode represents an interval end. More...
 
bool is_closed () const noexcept
 Returns true if the interval border represented by this InnerNode is closed. More...
 
const OuterNode * get_interval () const noexcept
 Returns a pointer to your interval node. More...
 

Public Attributes

size_t lca_tag = 0
 

Friends

template<class FNode , class FNodeTraits , class FCombiners , class FOptions , class TreeSelector , class FTag >
class ::ygg::DynamicSegmentTree
 
template<class FInnerTree , class FInnerNode , class FNode , class FNodeTraits >
class InnerRBNodeTraits
 
template<class FInnerTree , class FInnerNode , class FNode , class FNodeTraits >
class InnerWBNodeTraits
 
template<class FInnerTree , class FInnerNode , class FAggValueT >
class InnerZNodeTraits
 
template<class FInnerNode , class... FCombiners>
class ASCIIInnerNodeNameGetter
 
template<class FInnerNode , class... FCombiners>
class DOTInnerNodeNameGette
 

Detailed Description

template<template< class InnerNodeCRTP, class BaseKeyT > class Base, class OuterNode, class KeyT_in, class ValueT_in, class AggValueT_in, class Combiners, class Tag>
class ygg::dyn_segtree_internal::InnerNode< Base, OuterNode, KeyT_in, ValueT_in, AggValueT_in, Combiners, Tag >

Representation of either a start or an end of an interval.

An object of this class represents either a start or an end of an interval you inserted into a DynamicSegmentTree. You can use get_interval() to retrieve a pointer to the node that you inserted into the DynamicSegmentTree.

Member Function Documentation

◆ get_interval()

template<template< class InnerNodeCRTP, class BaseKeyT > class Base, class OuterNode , class KeyT_in , class ValueT_in , class AggValueT_in , class Combiners , class Tag >
const OuterNode* ygg::dyn_segtree_internal::InnerNode< Base, OuterNode, KeyT_in, ValueT_in, AggValueT_in, Combiners, Tag >::get_interval ( ) const
noexcept

Returns a pointer to your interval node.

This returns a pointer to an DynSegTreeNodeBase, which is the base class from which you have derived your Node class. You can up-cast this into your node class to get a pointer to the interval node.

Returns
a pointer to your interval node

◆ get_point()

template<template< class InnerNodeCRTP, class BaseKeyT > class Base, class OuterNode , class KeyT_in , class ValueT_in , class AggValueT_in , class Combiners , class Tag >
KeyT ygg::dyn_segtree_internal::InnerNode< Base, OuterNode, KeyT_in, ValueT_in, AggValueT_in, Combiners, Tag >::get_point ( ) const
noexcept

Returns the point at which the event represented by this InnerNode happens.

Returns
The point at which the event represented by this InnerNode happens

◆ is_closed()

template<template< class InnerNodeCRTP, class BaseKeyT > class Base, class OuterNode , class KeyT_in , class ValueT_in , class AggValueT_in , class Combiners , class Tag >
bool ygg::dyn_segtree_internal::InnerNode< Base, OuterNode, KeyT_in, ValueT_in, AggValueT_in, Combiners, Tag >::is_closed ( ) const
noexcept

Returns true if the interval border represented by this InnerNode is closed.

Returns
true if the interval border represented by this InnerNode is closed

◆ is_end()

template<template< class InnerNodeCRTP, class BaseKeyT > class Base, class OuterNode , class KeyT_in , class ValueT_in , class AggValueT_in , class Combiners , class Tag >
bool ygg::dyn_segtree_internal::InnerNode< Base, OuterNode, KeyT_in, ValueT_in, AggValueT_in, Combiners, Tag >::is_end ( ) const
noexcept

Returns true if this InnerNode represents an interval end.

Returns
true if this InnerNode represents an interval end

◆ is_start()

template<template< class InnerNodeCRTP, class BaseKeyT > class Base, class OuterNode , class KeyT_in , class ValueT_in , class AggValueT_in , class Combiners , class Tag >
bool ygg::dyn_segtree_internal::InnerNode< Base, OuterNode, KeyT_in, ValueT_in, AggValueT_in, Combiners, Tag >::is_start ( ) const
noexcept

Returns true if this InnerNode represents an interval start.

Returns
true if this InnerNode represents an interval start

The documentation for this class was generated from the following file: