LLVM 24.0.0git
llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare > Class Template Reference

A map implementation backed by a sorted SmallVector. More...

#include "llvm/ADT/SortedVectorMap.h"

Inheritance diagram for llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >:
[legend]

Public Types

using key_type = KeyT
using mapped_type = ValueT
using value_type = std::pair<KeyT, ValueT>
using VectorType = SmallVector<value_type, N>
using size_type = typename VectorType::size_type
using iterator = typename VectorType::iterator
using const_iterator = typename VectorType::const_iterator

Public Member Functions

 SortedVectorMap ()=default
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
bool empty () const
size_type size () const
size_type capacity () const
void reserve (size_type Cap)
template<typename K>
const_iterator find (const K &Key) const
template<typename K>
iterator find (const K &Key)
template<typename... Ts>
std::pair< iterator, booltry_emplace (const KeyT &Key, Ts &&...Args)
template<typename... Ts>
std::pair< iterator, booltry_emplace (KeyT &&Key, Ts &&...Args)
std::pair< iterator, boolinsert (const value_type &KV)
std::pair< iterator, boolinsert (value_type &&KV)
ValueT & operator[] (const KeyT &Key)
ValueT & operator[] (KeyT &&Key)
iterator erase (iterator Pos)
iterator erase (const_iterator Pos)
bool operator== (const SortedVectorMap &Other) const

Detailed Description

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
class llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >

A map implementation backed by a sorted SmallVector.

Key-value pairs are stored in contiguous memory ordered by KeyCompare.

Definition at line 47 of file SortedVectorMap.h.

Member Typedef Documentation

◆ const_iterator

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
using llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::const_iterator = typename VectorType::const_iterator

Definition at line 56 of file SortedVectorMap.h.

◆ iterator

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
using llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::iterator = typename VectorType::iterator

Definition at line 55 of file SortedVectorMap.h.

◆ key_type

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
using llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::key_type = KeyT

Definition at line 49 of file SortedVectorMap.h.

◆ mapped_type

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
using llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::mapped_type = ValueT

Definition at line 50 of file SortedVectorMap.h.

◆ size_type

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
using llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::size_type = typename VectorType::size_type

Definition at line 53 of file SortedVectorMap.h.

◆ value_type

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
using llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::value_type = std::pair<KeyT, ValueT>

Definition at line 51 of file SortedVectorMap.h.

◆ VectorType

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
using llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::VectorType = SmallVector<value_type, N>

Definition at line 52 of file SortedVectorMap.h.

Constructor & Destructor Documentation

◆ SortedVectorMap()

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::SortedVectorMap ( )
default

Member Function Documentation

◆ begin() [1/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
iterator llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::begin ( )
inline

Definition at line 105 of file SortedVectorMap.h.

◆ begin() [2/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
const_iterator llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::begin ( ) const
inline

Definition at line 107 of file SortedVectorMap.h.

◆ capacity()

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
size_type llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::capacity ( ) const
inline

Definition at line 113 of file SortedVectorMap.h.

◆ empty()

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
bool llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::empty ( ) const
inlinenodiscard

Definition at line 111 of file SortedVectorMap.h.

◆ end() [1/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
iterator llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::end ( )
inline

Definition at line 106 of file SortedVectorMap.h.

◆ end() [2/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
const_iterator llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::end ( ) const
inline

Definition at line 108 of file SortedVectorMap.h.

◆ erase() [1/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
iterator llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::erase ( const_iterator Pos)
inline

Definition at line 155 of file SortedVectorMap.h.

◆ erase() [2/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
iterator llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::erase ( iterator Pos)
inline

Definition at line 154 of file SortedVectorMap.h.

◆ find() [1/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
template<typename K>
iterator llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::find ( const K & Key)
inline

Definition at line 123 of file SortedVectorMap.h.

◆ find() [2/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
template<typename K>
const_iterator llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::find ( const K & Key) const
inline

Definition at line 118 of file SortedVectorMap.h.

◆ insert() [1/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
std::pair< iterator, bool > llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::insert ( const value_type & KV)
inline

Definition at line 138 of file SortedVectorMap.h.

◆ insert() [2/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
std::pair< iterator, bool > llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::insert ( value_type && KV)
inline

Definition at line 142 of file SortedVectorMap.h.

◆ operator==()

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
bool llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::operator== ( const SortedVectorMap< KeyT, ValueT, N, KeyCompare > & Other) const
inline

Definition at line 157 of file SortedVectorMap.h.

◆ operator[]() [1/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
ValueT & llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::operator[] ( const KeyT & Key)
inline

Definition at line 146 of file SortedVectorMap.h.

◆ operator[]() [2/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
ValueT & llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::operator[] ( KeyT && Key)
inline

Definition at line 150 of file SortedVectorMap.h.

◆ reserve()

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
void llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::reserve ( size_type Cap)
inline

Definition at line 114 of file SortedVectorMap.h.

◆ size()

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
size_type llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::size ( ) const
inline

Definition at line 112 of file SortedVectorMap.h.

◆ try_emplace() [1/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
template<typename... Ts>
std::pair< iterator, bool > llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::try_emplace ( const KeyT & Key,
Ts &&... Args )
inline

Definition at line 129 of file SortedVectorMap.h.

◆ try_emplace() [2/2]

template<typename KeyT, typename ValueT, unsigned N = 0, typename KeyCompare = std::less<KeyT>>
template<typename... Ts>
std::pair< iterator, bool > llvm::SortedVectorMap< KeyT, ValueT, N, KeyCompare >::try_emplace ( KeyT && Key,
Ts &&... Args )
inline

Definition at line 134 of file SortedVectorMap.h.


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