Sequoia
|
Base class for partitioned sequences where data is contiguous across all partitions. More...
#include <PartitionedData.hpp>
Public Types | |
using | value_type = T |
using | container_type = Container |
using | partitions_type = Partitions |
using | index_type = typename partitions_type::value_type |
using | size_type = std::common_type_t< index_type, typename container_type::size_type > |
using | partition_iterator = data_structures::partition_iterator< container_type, index_type > |
using | const_partition_iterator = data_structures::const_partition_iterator< container_type, index_type > |
using | reverse_partition_iterator = data_structures::reverse_partition_iterator< container_type, index_type > |
using | const_reverse_partition_iterator = data_structures::const_reverse_partition_iterator< container_type, index_type > |
using | partition_range = std::ranges::subrange< partition_iterator > |
using | const_partition_range = std::ranges::subrange< const_partition_iterator > |
Public Member Functions | |
constexpr | partitioned_sequence_base (const partitioned_sequence_base &)=default |
constexpr bool | empty () const noexcept |
constexpr auto | size () const noexcept |
constexpr size_type | size_of_partition (index_type i) const |
constexpr auto | num_partitions () const noexcept |
constexpr partition_iterator | begin_partition (const index_type i) noexcept |
constexpr partition_iterator | end_partition (const index_type i) noexcept |
constexpr const_partition_iterator | begin_partition (const index_type i) const noexcept |
constexpr const_partition_iterator | end_partition (const index_type i) const noexcept |
constexpr const_partition_iterator | cbegin_partition (const index_type i) const noexcept |
constexpr const_partition_iterator | cend_partition (const index_type i) const noexcept |
constexpr reverse_partition_iterator | rbegin_partition (const index_type i) noexcept |
constexpr reverse_partition_iterator | rend_partition (const index_type i) noexcept |
constexpr const_reverse_partition_iterator | rbegin_partition (const index_type i) const noexcept |
constexpr const_reverse_partition_iterator | rend_partition (const index_type i) const noexcept |
constexpr const_reverse_partition_iterator | crbegin_partition (const index_type i) const noexcept |
constexpr const_reverse_partition_iterator | crend_partition (const index_type i) const noexcept |
constexpr partition_range | partition (const index_type i) noexcept |
constexpr const_partition_range | partition (const index_type i) const noexcept |
constexpr const_partition_range | cpartition (const index_type i) const noexcept |
constexpr const_partition_iterator | operator[] (const index_type i) const noexcept |
constexpr partition_iterator | operator[] (const index_type i) noexcept |
constexpr void | swap_partitions (index_type i, index_type j) |
template<alloc Allocator, alloc PartitionsAllocator> requires (std::allocator_traits<Allocator>::propagate_on_container_copy_assignment::value && std::allocator_traits<PartitionsAllocator>::propagate_on_container_copy_assignment::value) | |
void | reset (const Allocator &allocator, const PartitionsAllocator &partitionsAllocator) noexcept |
Protected Member Functions | |
constexpr | partitioned_sequence_base (const std::pair< partitions_type, container_type > &data) |
constexpr | partitioned_sequence_base (partitioned_sequence_base &&) noexcept=default |
constexpr partitioned_sequence_base & | operator= (partitioned_sequence_base &&) noexcept=default |
constexpr partitioned_sequence_base & | operator= (const partitioned_sequence_base &)=default |
void | swap (partitioned_sequence_base &other) noexcept(noexcept(std::ranges::swap(this->m_Partitions, other.m_Partitions)) &&noexcept(std::ranges::swap(this->m_Data, other.m_Data))) |
auto | get_allocator () const |
auto | get_partitions_allocator () const |
template<alloc Allocator> | |
constexpr | partitioned_sequence_base (const Allocator &allocator) noexcept |
template<alloc Allocator, alloc PartitionsAllocator> | |
constexpr | partitioned_sequence_base (const Allocator &allocator, const PartitionsAllocator &partitionsAllocator) noexcept |
template<alloc Allocator, alloc PartitionsAllocator> | |
constexpr | partitioned_sequence_base (std::initializer_list< std::initializer_list< T > > list, const Allocator &allocator, const PartitionsAllocator &partitionsAllocator) |
template<alloc Allocator, alloc PartitionsAllocator> | |
constexpr | partitioned_sequence_base (const partitioned_sequence_base &other, const Allocator &allocator, const PartitionsAllocator &partitionsAllocator) |
template<alloc Allocator, alloc PartitionsAllocator> | |
constexpr | partitioned_sequence_base (partitioned_sequence_base &&in, const Allocator &allocator, const PartitionsAllocator &partitionsAllocator) |
void | add_slot () |
void | insert_slot (const size_t pos) |
void | erase_slot (const index_type n) |
void | reserve (const size_type size) |
index_type | capacity () const noexcept |
void | reserve_partitions (const size_type numPartitions) |
index_type | num_partitions_capacity () const noexcept |
void | shrink_to_fit () |
void | clear () noexcept |
template<class... Args> | |
void | push_back_to_partition (const index_type index, Args &&... args) |
template<class... Args> | |
partition_iterator | insert_to_partition (const_partition_iterator pos, Args &&... args) |
template<class... Args> | |
partition_iterator | insert_to_partition (const size_type index, const size_type pos, Args &&... args) |
partition_iterator | erase_from_partition (const_partition_iterator iter) |
partition_iterator | erase_from_partition (const_partition_iterator first, const_partition_iterator last) |
partition_iterator | erase_from_partition (const index_type index, const size_type pos) |
Friends | |
constexpr bool | operator== (const partitioned_sequence_base &, const partitioned_sequence_base &) noexcept=default |
Base class for partitioned sequences where data is contiguous across all partitions.