Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Cartesian_Tree_RMaxQ< T > Struct Template Reference

Range maximum queries via Cartesian Tree. More...

#include <tpl_cartesian_tree.H>

Inheritance diagram for Aleph::Cartesian_Tree_RMaxQ< T >:
[legend]
Collaboration diagram for Aleph::Cartesian_Tree_RMaxQ< T >:
[legend]

Public Types

using Base = Gen_Cartesian_Tree_RMQ< T, Aleph::greater< T > >
 
- Public Types inherited from Aleph::Gen_Cartesian_Tree_RMQ< T, Aleph::greater< T > >
using Item_Type = T
 The type of the element.
 

Additional Inherited Members

- Public Member Functions inherited from Aleph::Gen_Cartesian_Tree_RMQ< T, Aleph::greater< T > >
 Gen_Cartesian_Tree_RMQ (const Array< T > &values, Aleph::greater< T > c=Aleph::greater< T >())
 Construct from an Array<T>.
 
 Gen_Cartesian_Tree_RMQ (const std::vector< T > &values, Aleph::greater< T > c=Aleph::greater< T >())
 Construct from a std::vector<T>.
 
 Gen_Cartesian_Tree_RMQ (std::initializer_list< T > il, Aleph::greater< T > c=Aleph::greater< T >())
 Construct from an initializer_list<T>.
 
 Gen_Cartesian_Tree_RMQ (const DynList< T > &values, Aleph::greater< T > c=Aleph::greater< T >())
 Construct from a DynList<T>.
 
 Gen_Cartesian_Tree_RMQ (const size_t num, const T &init, Aleph::greater< T > c=Aleph::greater< T >())
 Construct with num elements all equal to init.
 
T query (const size_t l, const size_t r) const
 Range query over [l, r] in O(1).
 
size_t query_idx (const size_t l, const size_t r) const
 Return the index of the optimal element in a[l..r].
 
T get (const size_t i) const
 Retrieve the value at position i in O(1).
 
constexpr size_t size () const noexcept
 Number of elements.
 
constexpr bool is_empty () const noexcept
 True if empty.
 
Array< Tvalues () const
 Copy of the original values.
 
const Gen_Euler_Tour_LCA< T, Aleph::greater< T > > & lca_engine () const noexcept
 Const reference to the internal LCA engine.
 

Detailed Description

template<std::totally_ordered T>
struct Aleph::Cartesian_Tree_RMaxQ< T >

Range maximum queries via Cartesian Tree.

Template Parameters
Ta totally ordered type.

Definition at line 949 of file tpl_cartesian_tree.H.

Member Typedef Documentation

◆ Base

template<std::totally_ordered T>
using Aleph::Cartesian_Tree_RMaxQ< T >::Base = Gen_Cartesian_Tree_RMQ<T, Aleph::greater<T> >

Definition at line 952 of file tpl_cartesian_tree.H.


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