LLVM API Documentation

Public Types | Public Member Functions
llvm::MapVector< KeyT, ValueT, MapType, VectorType > Class Template Reference

#include <MapVector.h>

Inheritance diagram for llvm::MapVector< KeyT, ValueT, MapType, VectorType >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef VectorType::iterator iterator
typedef VectorType::const_iterator const_iterator

Public Member Functions

size_type size () const
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
bool empty () const
std::pair< KeyT, ValueT > & front ()
const std::pair< KeyT, ValueT > & front () const
std::pair< KeyT, ValueT > & back ()
const std::pair< KeyT, ValueT > & back () const
void clear ()
ValueT & operator[] (const KeyT &Key)
ValueT lookup (const KeyT &Key) const
std::pair< iterator, boolinsert (const std::pair< KeyT, ValueT > &KV)
size_type count (const KeyT &Key) const
iterator find (const KeyT &Key)
const_iterator find (const KeyT &Key) const
void pop_back ()
 Remove the last element from the vector.
VectorType::iterator erase (typename VectorType::iterator Iterator)
 Remove the element given by Iterator.
template<class Predicate >
void remove_if (Predicate Pred)
 Remove the elements that match the predicate.
template<class Function >
void remove_if (Function Pred)

Detailed Description

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
class llvm::MapVector< KeyT, ValueT, MapType, VectorType >

This class implements a map that also provides access to all stored values in a deterministic order. The values are kept in a std::vector and the mapping is done with DenseMap from Keys to indexes in that vector.

Definition at line 31 of file MapVector.h.


Member Typedef Documentation

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
typedef VectorType::const_iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::const_iterator

Definition at line 39 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
typedef VectorType::iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::iterator

Definition at line 38 of file MapVector.h.


Member Function Documentation

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
std::pair<KeyT, ValueT>& llvm::MapVector< KeyT, ValueT, MapType, VectorType >::back ( ) [inline]

Definition at line 67 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
const std::pair<KeyT, ValueT>& llvm::MapVector< KeyT, ValueT, MapType, VectorType >::back ( ) const [inline]

Definition at line 68 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::begin ( ) [inline]
template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
const_iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::begin ( ) const [inline]

Definition at line 49 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
void llvm::MapVector< KeyT, ValueT, MapType, VectorType >::clear ( ) [inline]
template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
size_type llvm::MapVector< KeyT, ValueT, MapType, VectorType >::count ( const KeyT Key) const [inline]

Definition at line 103 of file MapVector.h.

Referenced by llvm::MCGenDwarfLabelEntry::Make().

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
bool llvm::MapVector< KeyT, ValueT, MapType, VectorType >::empty ( ) const [inline]
template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::end ( ) [inline]
template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
const_iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::end ( ) const [inline]

Definition at line 57 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
VectorType::iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::erase ( typename VectorType::iterator  Iterator) [inline]

Remove the element given by Iterator.

Returns an iterator to the element following the one which was removed, which may be end().

Note:
This is a deceivingly expensive operation (linear time). It's usually better to use remove_if() if possible.

Definition at line 134 of file MapVector.h.

Referenced by llvm::MCContext::finalizeDwarfSections().

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::find ( const KeyT Key) [inline]
template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
const_iterator llvm::MapVector< KeyT, ValueT, MapType, VectorType >::find ( const KeyT Key) const [inline]

Definition at line 114 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
std::pair<KeyT, ValueT>& llvm::MapVector< KeyT, ValueT, MapType, VectorType >::front ( ) [inline]

Definition at line 65 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
const std::pair<KeyT, ValueT>& llvm::MapVector< KeyT, ValueT, MapType, VectorType >::front ( ) const [inline]

Definition at line 66 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
std::pair<iterator, bool> llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert ( const std::pair< KeyT, ValueT > &  KV) [inline]

Definition at line 91 of file MapVector.h.

Referenced by llvm::MCContext::addGenDwarfSection(), and llvm::FileInfo::print().

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
ValueT llvm::MapVector< KeyT, ValueT, MapType, VectorType >::lookup ( const KeyT Key) const [inline]

Definition at line 86 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
ValueT& llvm::MapVector< KeyT, ValueT, MapType, VectorType >::operator[] ( const KeyT Key) [inline]

Definition at line 75 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
void llvm::MapVector< KeyT, ValueT, MapType, VectorType >::pop_back ( ) [inline]

Remove the last element from the vector.

Definition at line 121 of file MapVector.h.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
template<class Predicate >
void llvm::MapVector< KeyT, ValueT, MapType, VectorType >::remove_if ( Predicate  Pred)

Remove the elements that match the predicate.

Erase all elements that match Pred in a single pass. Takes linear time.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
template<class Function >
void llvm::MapVector< KeyT, ValueT, MapType, VectorType >::remove_if ( Function  Pred)

Definition at line 159 of file MapVector.h.

References I.

template<typename KeyT, typename ValueT, typename MapType = llvm::DenseMap<KeyT, unsigned>, typename VectorType = std::vector<std::pair<KeyT, ValueT> >>
size_type llvm::MapVector< KeyT, ValueT, MapType, VectorType >::size ( ) const [inline]

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