tsl

template < class Key, class T, class Hash = std::hash < Key >, class KeyEqual = std::equal_to < Key >, class Allocator = std::allocator < std::pair < Key, T >>, class ValueTypeContainer = std::deque < std::pair < Key, T >, Allocator >>

class ordered_map

Library:
Package:
Header: Poco/ordered_map.h

Member Summary

Member Functions: at, back, begin, bucket_count, capacity, cbegin, cend, clear, count, data, emplace, emplace_at_position, emplace_hint, empty, end, equal_range, erase, find, front, get_allocator, hash_function, insert, insert_at_position, insert_or_assign, key_eq, load_factor, max_bucket_count, max_load_factor, max_size, mutable_iterator, nth, operator =, operator [], pop_back, rbegin, rcbegin, rcend, rehash, rend, reserve, shrink_to_fit, size, swap, try_emplace, try_emplace_at_position, unordered_erase, values_container

Types Aliases

allocator_type

using allocator_type = typename ht::allocator_type;

const_iterator

using const_iterator = typename ht::const_iterator;

const_pointer

using const_pointer = typename ht::const_pointer;

const_reference

using const_reference = typename ht::const_reference;

const_reverse_iterator

using const_reverse_iterator = typename ht::const_reverse_iterator;

difference_type

using difference_type = typename ht::difference_type;

hasher

using hasher = typename ht::hasher;

iterator

using iterator = typename ht::iterator;

key_equal

using key_equal = typename ht::key_equal;

key_type

using key_type = typename ht::key_type;

mapped_type

using mapped_type = T;

pointer

using pointer = typename ht::pointer;

reference

using reference = typename ht::reference;

reverse_iterator

using reverse_iterator = typename ht::reverse_iterator;

size_type

using size_type = typename ht::size_type;

value_type

using value_type = typename ht::value_type;

values_container_type

using values_container_type = typename ht::values_container_type;

Constructors

ordered_map inline

ordered_map();

ordered_map inline

explicit ordered_map(
    const Allocator & alloc
);

ordered_map inline

ordered_map(
    size_type bucket_count,
    const Allocator & alloc
);

ordered_map inline

ordered_map(
    size_type bucket_count,
    const Hash & hash,
    const Allocator & alloc
);

ordered_map inline

ordered_map(
    std::initializer_list < value_type > init,
    size_type bucket_count,
    const Allocator & alloc
);

ordered_map inline

explicit ordered_map(
    size_type bucket_count,
    const Hash & hash = Hash (),
    const KeyEqual & equal = KeyEqual (),
    const Allocator & alloc = Allocator ()
);

ordered_map inline

template < class InputIt > ordered_map(
    InputIt first,
    InputIt last,
    size_type bucket_count,
    const Allocator & alloc
);

ordered_map inline

ordered_map(
    std::initializer_list < value_type > init,
    size_type bucket_count,
    const Hash & hash,
    const Allocator & alloc
);

ordered_map inline

template < class InputIt > ordered_map(
    InputIt first,
    InputIt last,
    size_type bucket_count,
    const Hash & hash,
    const Allocator & alloc
);

ordered_map inline

ordered_map(
    std::initializer_list < value_type > init,
    size_type bucket_count = ht::DEFAULT_INIT_BUCKETS_SIZE,
    const Hash & hash = Hash (),
    const KeyEqual & equal = KeyEqual (),
    const Allocator & alloc = Allocator ()
);

ordered_map inline

template < class InputIt > ordered_map(
    InputIt first,
    InputIt last,
    size_type bucket_count = ht::DEFAULT_INIT_BUCKETS_SIZE,
    const Hash & hash = Hash (),
    const KeyEqual & equal = KeyEqual (),
    const Allocator & alloc = Allocator ()
);

Member Functions

at inline

T & at(
    const Key & key
);

at inline

T & at(
    const Key & key,
    std::size_t precalculated_hash
);

at inline

const T & at(
    const Key & key
) const;

at inline

const T & at(
    const Key & key,
    std::size_t precalculated_hash
) const;

at inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > T & at(
    const K & key
);

at inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > T & at(
    const K & key,
    std::size_t precalculated_hash
);

at inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > const T & at(
    const K & key
) const;

at inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > const T & at(
    const K & key,
    std::size_t precalculated_hash
) const;

back inline

const_reference back() const;

begin inline

iterator begin() noexcept;

begin inline

const_iterator begin() const noexcept;

bucket_count inline

size_type bucket_count() const;

capacity inline

template < class U = values_container_type, typename std::enable_if < tsl::detail_ordered_hash::is_vector < U >::value >::type * = __nullptr > size_type capacity() const noexcept;

cbegin inline

const_iterator cbegin() const noexcept;

cend inline

const_iterator cend() const noexcept;

clear inline

void clear() noexcept;

count inline

size_type count(
    const Key & key
) const;

count inline

size_type count(
    const Key & key,
    std::size_t precalculated_hash
) const;

count inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > size_type count(
    const K & key
) const;

count inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > size_type count(
    const K & key,
    std::size_t precalculated_hash
) const;

data inline

template < class U = values_container_type, typename std::enable_if < tsl::detail_ordered_hash::is_vector < U >::value >::type * = __nullptr > const typename values_container_type::value_type * data() const noexcept;

emplace inline

template < class ... Args > std::pair < iterator, bool > emplace(
    Args && ... args
);

emplace_at_position inline

template < class ... Args > std::pair < iterator, bool > emplace_at_position(
    const_iterator pos,
    Args && ... args
);

emplace_hint inline

template < class ... Args > iterator emplace_hint(
    const_iterator hint,
    Args && ... args
);

empty inline

bool empty() const noexcept;

end inline

iterator end() noexcept;

end inline

const_iterator end() const noexcept;

equal_range inline

std::pair < iterator, iterator > equal_range(
    const Key & key
);

equal_range inline

std::pair < iterator, iterator > equal_range(
    const Key & key,
    std::size_t precalculated_hash
);

equal_range inline

std::pair < const_iterator, const_iterator > equal_range(
    const Key & key
) const;

equal_range inline

std::pair < const_iterator, const_iterator > equal_range(
    const Key & key,
    std::size_t precalculated_hash
) const;

equal_range inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > std::pair < iterator, iterator > equal_range(
    const K & key
);

equal_range inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > std::pair < iterator, iterator > equal_range(
    const K & key,
    std::size_t precalculated_hash
);

equal_range inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > std::pair < const_iterator, const_iterator > equal_range(
    const K & key
) const;

equal_range inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > std::pair < const_iterator, const_iterator > equal_range(
    const K & key,
    std::size_t precalculated_hash
) const;

erase inline

iterator erase(
    iterator pos
);

erase inline

iterator erase(
    const_iterator pos
);

erase inline

iterator erase(
    const_iterator first,
    const_iterator last
);

erase inline

size_type erase(
    const key_type & key
);

erase inline

size_type erase(
    const key_type & key,
    std::size_t precalculated_hash
);

erase inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > size_type erase(
    const K & key
);

erase inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > size_type erase(
    const K & key,
    std::size_t precalculated_hash
);

find inline

iterator find(
    const Key & key
);

find inline

iterator find(
    const Key & key,
    std::size_t precalculated_hash
);

find inline

const_iterator find(
    const Key & key
) const;

find inline

const_iterator find(
    const Key & key,
    std::size_t precalculated_hash
) const;

find inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > iterator find(
    const K & key
);

find inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > iterator find(
    const K & key,
    std::size_t precalculated_hash
);

find inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > const_iterator find(
    const K & key
) const;

find inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > const_iterator find(
    const K & key,
    std::size_t precalculated_hash
) const;

front inline

const_reference front() const;

get_allocator inline

allocator_type get_allocator() const;

hash_function inline

hasher hash_function() const;

insert inline

std::pair < iterator, bool > insert(
    const value_type & value
);

insert inline

template < class P, typename std::enable_if < std::is_constructible < value_type, P && >::value >::type * = __nullptr > std::pair < iterator, bool > insert(
    P && value
);

insert inline

std::pair < iterator, bool > insert(
    value_type && value
);

insert inline

iterator insert(
    const_iterator hint,
    const value_type & value
);

insert inline

template < class P, typename std::enable_if < std::is_constructible < value_type, P && >::value >::type * = __nullptr > iterator insert(
    const_iterator hint,
    P && value
);

insert inline

iterator insert(
    const_iterator hint,
    value_type && value
);

insert inline

template < class InputIt > void insert(
    InputIt first,
    InputIt last
);

insert inline

void insert(
    std::initializer_list < value_type > ilist
);

insert_at_position inline

std::pair < iterator, bool > insert_at_position(
    const_iterator pos,
    const value_type & value
);

insert_at_position inline

std::pair < iterator, bool > insert_at_position(
    const_iterator pos,
    value_type && value
);

insert_or_assign inline

template < class M > std::pair < iterator, bool > insert_or_assign(
    const key_type & k,
    M && obj
);

insert_or_assign inline

template < class M > std::pair < iterator, bool > insert_or_assign(
    key_type && k,
    M && obj
);

insert_or_assign inline

template < class M > iterator insert_or_assign(
    const_iterator hint,
    const key_type & k,
    M && obj
);

insert_or_assign inline

template < class M > iterator insert_or_assign(
    const_iterator hint,
    key_type && k,
    M && obj
);

key_eq inline

key_equal key_eq() const;

load_factor inline

float load_factor() const;

max_bucket_count inline

size_type max_bucket_count() const;

max_load_factor inline

float max_load_factor() const;

max_load_factor inline

void max_load_factor(
    float ml
);

max_size inline

size_type max_size() const noexcept;

mutable_iterator inline

iterator mutable_iterator(
    const_iterator pos
);

nth inline

iterator nth(
    size_type index
);

nth inline

const_iterator nth(
    size_type index
) const;

operator = inline

ordered_map & operator = (
    std::initializer_list < value_type > ilist
);

operator [] inline

T & operator[] (
    const Key & key
);

operator [] inline

T & operator[] (
    Key && key
);

pop_back inline

void pop_back();

rbegin inline

reverse_iterator rbegin() noexcept;

rbegin inline

const_reverse_iterator rbegin() const noexcept;

rcbegin inline

const_reverse_iterator rcbegin() const noexcept;

rcend inline

const_reverse_iterator rcend() const noexcept;

rehash inline

void rehash(
    size_type count
);

rend inline

reverse_iterator rend() noexcept;

rend inline

const_reverse_iterator rend() const noexcept;

reserve inline

void reserve(
    size_type count
);

shrink_to_fit inline

void shrink_to_fit();

size inline

size_type size() const noexcept;

swap inline

void swap(
    ordered_map & other
) noexcept;

try_emplace inline

template < class ... Args > std::pair < iterator, bool > try_emplace(
    const key_type & k,
    Args && ... args
);

try_emplace inline

template < class ... Args > std::pair < iterator, bool > try_emplace(
    key_type && k,
    Args && ... args
);

try_emplace inline

template < class ... Args > iterator try_emplace(
    const_iterator hint,
    const key_type & k,
    Args && ... args
);

try_emplace inline

template < class ... Args > iterator try_emplace(
    const_iterator hint,
    key_type && k,
    Args && ... args
);

try_emplace_at_position inline

template < class ... Args > std::pair < iterator, bool > try_emplace_at_position(
    const_iterator pos,
    const key_type & k,
    Args && ... args
);

try_emplace_at_position inline

template < class ... Args > std::pair < iterator, bool > try_emplace_at_position(
    const_iterator pos,
    key_type && k,
    Args && ... args
);

unordered_erase inline

iterator unordered_erase(
    iterator pos
);

unordered_erase inline

iterator unordered_erase(
    const_iterator pos
);

unordered_erase inline

size_type unordered_erase(
    const key_type & key
);

unordered_erase inline

size_type unordered_erase(
    const key_type & key,
    std::size_t precalculated_hash
);

unordered_erase inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > size_type unordered_erase(
    const K & key
);

unordered_erase inline

template < class K, class KE = KeyEqual, typename std::enable_if < has_is_transparent < KE >::value >::type * = __nullptr > size_type unordered_erase(
    const K & key,
    std::size_t precalculated_hash
);

values_container inline

const values_container_type & values_container() const noexcept;