Rosetta
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
utility::keys::SmallKeyVector< K, T > Class Template Reference

Keyed-access vector with key subset map. More...

#include <SmallKeyVector.hh>

Public Types

typedef K key_type
 
typedef Vector::value_type value_type
 
typedef Vector::reference reference
 
typedef Vector::const_reference const_reference
 
typedef Vector::pointer pointer
 
typedef Vector::const_pointer const_pointer
 
typedef Vector::iterator iterator
 
typedef Vector::const_iterator const_iterator
 
typedef Vector::reverse_iterator reverse_iterator
 
typedef Vector::const_reverse_iterator const_reverse_iterator
 
typedef Vector::size_type size_type
 
typedef Vector::index_type index_type
 
typedef Vector::difference_type difference_type
 
typedef Vector::allocator_type allocator_type
 
typedef K Key
 
typedef Vector::Value Value
 
typedef Vector::Reference Reference
 
typedef Vector::ConstReference ConstReference
 
typedef Vector::Pointer Pointer
 
typedef Vector::ConstPointer ConstPointer
 
typedef Vector::Iterator Iterator
 
typedef Vector::ConstIterator ConstIterator
 
typedef Vector::ReverseIterator ReverseIterator
 
typedef Vector::ConstReverseIterator ConstReverseIterator
 
typedef Vector::Size Size
 
typedef Vector::Index Index
 
typedef Vector::Difference Difference
 
typedef Vector::Allocator Allocator
 

Public Member Functions

 SmallKeyVector ()
 Default constructor. More...
 
 SmallKeyVector (SmallKeyVector const &a)
 Copy constructor. More...
 
 SmallKeyVector (Size num)
 Size constructor. More...
 
 SmallKeyVector (Size num, Value const &value)
 Uniform value constructor. More...
 
template<typename InputIterator >
 SmallKeyVector (InputIterator const beg, InputIterator const end)
 Iterator range constructor. More...
 
 ~SmallKeyVector ()
 Destructor. More...
 
SmallKeyVectoroperator= (SmallKeyVector const &a)
 Copy assignment. More...
 
SmallKeyVectoroperator= (Value const &value)
 Uniform value assignment to current elements. More...
 
SmallKeyVectorassign (Key const &key, Value const &value)
 Assign a value to an element with a key. More...
 
void assign (Size num, Value const &value)
 Uniform value assignment. More...
 
template<typename InputIterator >
void assign (InputIterator const beg, InputIterator const end)
 Iterator assignment. More...
 
SmallKeyVectoradd (Key const &key)
 Add an element with a key if not present: Activate key if inactive. More...
 
Iterator insert (Iterator const &pos, Value const &value)
 Insert an element at an iterator position. More...
 
void insert (Iterator const &pos, Size num, Value const &value)
 Insert num copies of an element at an iterator position. More...
 
template<typename InputIterator >
void insert (Iterator const &pos, InputIterator const &beg, InputIterator const &end)
 Insert elements from iterator range [beg,end) at an iterator position. More...
 
void push_back (Value const &value)
 Appends an element. More...
 
Iterator erase (Iterator const &pos)
 Erase an element at an iterator position. More...
 
Iterator erase (Iterator const &beg, Iterator const &end)
 Erase elements in the iterator range [beg,end) More...
 
void pop_back ()
 Removes the last element. More...
 
void resize (Size num)
 Resize: Default construct new elements. More...
 
void resize (Size num, Value const &value)
 Resize: Assign given value to new elements. More...
 
void reserve (Size num)
 Reserve space for a given number of elements. More...
 
void shrink ()
 Shrink the vectors to remove unused capacity. More...
 
void swap (SmallKeyVector &a)
 swap( SmallKeyVector ) More...
 
void clear ()
 Clear the vector. More...
 
Size size () const
 Size. More...
 
bool empty () const
 Empty? More...
 
Size max_size () const
 Max size. More...
 
Size capacity () const
 Capacity. More...
 
ConstReference front () const
 Front element. More...
 
Reference front ()
 Front element. More...
 
ConstReference back () const
 Back element. More...
 
Reference back ()
 Back element. More...
 
bool has (Key const &key) const
 Is an element with a key present? More...
 
bool active (Key const &key) const
 Is a key active? More...
 
bool inactive (Key const &key) const
 Is a key inactive? More...
 
Index const & index (Key const &key)
 Index of a key. More...
 
ConstIterator find (Key const &key) const
 Iterator to element with a key. More...
 
Iterator find (Key const &key)
 Iterator to element with a key. More...
 
Reference operator() (Key const &key)
 SmallKeyVector( key ) More...
 
ConstReference operator[] (Key const &key) const
 SmallKeyVector[ key ] const. More...
 
Reference operator[] (Key const &key)
 SmallKeyVector[ key ]. More...
 
ConstReference at (Key const &key) const
 Element at index key: Bounds checked. More...
 
Reference at (Key const &key)
 Element at index key: Bounds checked. More...
 
ConstReference operator[] (Index const &i) const
 SmallKeyVector[ index ] const. More...
 
Reference operator[] (Index const &i)
 SmallKeyVector[ index ]. More...
 
ConstIterator begin () const
 Begin iterator. More...
 
Iterator begin ()
 Begin iterator. More...
 
ConstIterator end () const
 End iterator. More...
 
Iterator end ()
 End iterator. More...
 
ConstReverseIterator rbegin () const
 Begin reverse iterator. More...
 
ReverseIterator rbegin ()
 Begin reverse iterator. More...
 
ConstReverseIterator rend () const
 End reverse iterator. More...
 
ReverseIterator rend ()
 End reverse iterator. More...
 

Private Types

typedef vector1< TVector
 
typedef vector1< typename Vector::IndexIndexMap
 
typedef IndexMap::Size IndexMapSize
 
typedef IndexMap::Index IndexMapIndex
 

Private Member Functions

Index const & add_key (Key const &key)
 Add an element with a key if not present and return its index: Activate key if inactive. More...
 

Private Attributes

Vector v_
 Vector of values indexed by a subset of the possible keys. More...
 
IndexMap m_
 Index map from keys into v_: Zero => inactive key. More...
 
Index u_
 Upper active index of active keys. More...
 

Friends

template<typename UK , typename UT >
void swap (SmallKeyVector< UK, UT > &a, SmallKeyVector< UK, UT > &b)
 swap( SmallKeyVector, SmallKeyVector ) More...
 
bool operator== (SmallKeyVector const &a, SmallKeyVector const &b)
 SmallKeyVector == SmallKeyVector. More...
 
bool operator!= (SmallKeyVector const &a, SmallKeyVector const &b)
 SmallKeyVector != SmallKeyVector. More...
 

Detailed Description

template<typename K, typename T>
class utility::keys::SmallKeyVector< K, T >

Keyed-access vector with key subset map.

Member Typedef Documentation

◆ Allocator

template<typename K , typename T >
typedef Vector::Allocator utility::keys::SmallKeyVector< K, T >::Allocator

◆ allocator_type

template<typename K , typename T >
typedef Vector::allocator_type utility::keys::SmallKeyVector< K, T >::allocator_type

◆ const_iterator

template<typename K , typename T >
typedef Vector::const_iterator utility::keys::SmallKeyVector< K, T >::const_iterator

◆ const_pointer

template<typename K , typename T >
typedef Vector::const_pointer utility::keys::SmallKeyVector< K, T >::const_pointer

◆ const_reference

template<typename K , typename T >
typedef Vector::const_reference utility::keys::SmallKeyVector< K, T >::const_reference

◆ const_reverse_iterator

template<typename K , typename T >
typedef Vector::const_reverse_iterator utility::keys::SmallKeyVector< K, T >::const_reverse_iterator

◆ ConstIterator

template<typename K , typename T >
typedef Vector::ConstIterator utility::keys::SmallKeyVector< K, T >::ConstIterator

◆ ConstPointer

template<typename K , typename T >
typedef Vector::ConstPointer utility::keys::SmallKeyVector< K, T >::ConstPointer

◆ ConstReference

template<typename K , typename T >
typedef Vector::ConstReference utility::keys::SmallKeyVector< K, T >::ConstReference

◆ ConstReverseIterator

template<typename K , typename T >
typedef Vector::ConstReverseIterator utility::keys::SmallKeyVector< K, T >::ConstReverseIterator

◆ Difference

template<typename K , typename T >
typedef Vector::Difference utility::keys::SmallKeyVector< K, T >::Difference

◆ difference_type

template<typename K , typename T >
typedef Vector::difference_type utility::keys::SmallKeyVector< K, T >::difference_type

◆ Index

template<typename K , typename T >
typedef Vector::Index utility::keys::SmallKeyVector< K, T >::Index

◆ index_type

template<typename K , typename T >
typedef Vector::index_type utility::keys::SmallKeyVector< K, T >::index_type

◆ IndexMap

template<typename K , typename T >
typedef vector1< typename Vector::Index > utility::keys::SmallKeyVector< K, T >::IndexMap
private

◆ IndexMapIndex

template<typename K , typename T >
typedef IndexMap::Index utility::keys::SmallKeyVector< K, T >::IndexMapIndex
private

◆ IndexMapSize

template<typename K , typename T >
typedef IndexMap::Size utility::keys::SmallKeyVector< K, T >::IndexMapSize
private

◆ iterator

template<typename K , typename T >
typedef Vector::iterator utility::keys::SmallKeyVector< K, T >::iterator

◆ Iterator

template<typename K , typename T >
typedef Vector::Iterator utility::keys::SmallKeyVector< K, T >::Iterator

◆ Key

template<typename K , typename T >
typedef K utility::keys::SmallKeyVector< K, T >::Key

◆ key_type

template<typename K , typename T >
typedef K utility::keys::SmallKeyVector< K, T >::key_type

◆ pointer

template<typename K , typename T >
typedef Vector::pointer utility::keys::SmallKeyVector< K, T >::pointer

◆ Pointer

template<typename K , typename T >
typedef Vector::Pointer utility::keys::SmallKeyVector< K, T >::Pointer

◆ reference

template<typename K , typename T >
typedef Vector::reference utility::keys::SmallKeyVector< K, T >::reference

◆ Reference

template<typename K , typename T >
typedef Vector::Reference utility::keys::SmallKeyVector< K, T >::Reference

◆ reverse_iterator

template<typename K , typename T >
typedef Vector::reverse_iterator utility::keys::SmallKeyVector< K, T >::reverse_iterator

◆ ReverseIterator

template<typename K , typename T >
typedef Vector::ReverseIterator utility::keys::SmallKeyVector< K, T >::ReverseIterator

◆ Size

template<typename K , typename T >
typedef Vector::Size utility::keys::SmallKeyVector< K, T >::Size

◆ size_type

template<typename K , typename T >
typedef Vector::size_type utility::keys::SmallKeyVector< K, T >::size_type

◆ Value

template<typename K , typename T >
typedef Vector::Value utility::keys::SmallKeyVector< K, T >::Value

◆ value_type

template<typename K , typename T >
typedef Vector::value_type utility::keys::SmallKeyVector< K, T >::value_type

◆ Vector

template<typename K , typename T >
typedef vector1< T > utility::keys::SmallKeyVector< K, T >::Vector
private

Constructor & Destructor Documentation

◆ SmallKeyVector() [1/5]

template<typename K , typename T >
utility::keys::SmallKeyVector< K, T >::SmallKeyVector ( )
inline

Default constructor.

◆ SmallKeyVector() [2/5]

template<typename K , typename T >
utility::keys::SmallKeyVector< K, T >::SmallKeyVector ( SmallKeyVector< K, T > const &  a)
inline

Copy constructor.

◆ SmallKeyVector() [3/5]

template<typename K , typename T >
utility::keys::SmallKeyVector< K, T >::SmallKeyVector ( Size  num)
inlineexplicit

Size constructor.

◆ SmallKeyVector() [4/5]

template<typename K , typename T >
utility::keys::SmallKeyVector< K, T >::SmallKeyVector ( Size  num,
Value const &  value 
)
inline

Uniform value constructor.

◆ SmallKeyVector() [5/5]

template<typename K , typename T >
template<typename InputIterator >
utility::keys::SmallKeyVector< K, T >::SmallKeyVector ( InputIterator const  beg,
InputIterator const  end 
)
inline

Iterator range constructor.

◆ ~SmallKeyVector()

template<typename K , typename T >
utility::keys::SmallKeyVector< K, T >::~SmallKeyVector ( )
inline

Destructor.

Member Function Documentation

◆ active()

template<typename K , typename T >
bool utility::keys::SmallKeyVector< K, T >::active ( Key const &  key) const
inline

◆ add()

template<typename K , typename T >
SmallKeyVector& utility::keys::SmallKeyVector< K, T >::add ( Key const &  key)
inline

Add an element with a key if not present: Activate key if inactive.

References utility::keys::SmallKeyVector< K, T >::add_key(), and subloop_histogram::key.

Referenced by job_manager.MoveStatsWindow::__init__(), and pyrosetta.bindings.pose.ResidueLabelAccessor::discard().

◆ add_key()

template<typename K , typename T >
Index const& utility::keys::SmallKeyVector< K, T >::add_key ( Key const &  key)
inlineprivate

◆ assign() [1/3]

template<typename K , typename T >
template<typename InputIterator >
void utility::keys::SmallKeyVector< K, T >::assign ( InputIterator const  beg,
InputIterator const  end 
)
inline

◆ assign() [2/3]

template<typename K , typename T >
SmallKeyVector& utility::keys::SmallKeyVector< K, T >::assign ( Key const &  key,
Value const &  value 
)
inline

Assign a value to an element with a key.

Note
Adds the key to the map if not present
Expands the vector if necessary

References utility::keys::SmallKeyVector< K, T >::add_key(), subloop_histogram::key, utility::keys::SmallKeyVector< K, T >::v_, and value.

◆ assign() [3/3]

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::assign ( Size  num,
Value const &  value 
)
inline

Uniform value assignment.

References utility::keys::SmallKeyVector< K, T >::v_, and value.

◆ at() [1/2]

template<typename K , typename T >
Reference utility::keys::SmallKeyVector< K, T >::at ( Key const &  key)
inline

◆ at() [2/2]

template<typename K , typename T >
ConstReference utility::keys::SmallKeyVector< K, T >::at ( Key const &  key) const
inline

◆ back() [1/2]

template<typename K , typename T >
Reference utility::keys::SmallKeyVector< K, T >::back ( )
inline

◆ back() [2/2]

template<typename K , typename T >
ConstReference utility::keys::SmallKeyVector< K, T >::back ( ) const
inline

◆ begin() [1/2]

template<typename K , typename T >
Iterator utility::keys::SmallKeyVector< K, T >::begin ( )
inline

Begin iterator.

References utility::keys::SmallKeyVector< K, T >::v_.

◆ begin() [2/2]

template<typename K , typename T >
ConstIterator utility::keys::SmallKeyVector< K, T >::begin ( ) const
inline

◆ capacity()

template<typename K , typename T >
Size utility::keys::SmallKeyVector< K, T >::capacity ( ) const
inline

◆ clear()

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::clear ( )
inline

◆ empty()

template<typename K , typename T >
bool utility::keys::SmallKeyVector< K, T >::empty ( ) const
inline

◆ end() [1/2]

template<typename K , typename T >
Iterator utility::keys::SmallKeyVector< K, T >::end ( )
inline

End iterator.

References utility::keys::SmallKeyVector< K, T >::v_.

◆ end() [2/2]

template<typename K , typename T >
ConstIterator utility::keys::SmallKeyVector< K, T >::end ( ) const
inline

◆ erase() [1/2]

template<typename K , typename T >
Iterator utility::keys::SmallKeyVector< K, T >::erase ( Iterator const &  beg,
Iterator const &  end 
)
inline

Erase elements in the iterator range [beg,end)

References utility::keys::SmallKeyVector< K, T >::end(), and utility::keys::SmallKeyVector< K, T >::v_.

◆ erase() [2/2]

template<typename K , typename T >
Iterator utility::keys::SmallKeyVector< K, T >::erase ( Iterator const &  pos)
inline

Erase an element at an iterator position.

References make_symmdef_file_denovo::pos, and utility::keys::SmallKeyVector< K, T >::v_.

◆ find() [1/2]

template<typename K , typename T >
Iterator utility::keys::SmallKeyVector< K, T >::find ( Key const &  key)
inline

◆ find() [2/2]

template<typename K , typename T >
ConstIterator utility::keys::SmallKeyVector< K, T >::find ( Key const &  key) const
inline

◆ front() [1/2]

template<typename K , typename T >
Reference utility::keys::SmallKeyVector< K, T >::front ( )
inline

◆ front() [2/2]

template<typename K , typename T >
ConstReference utility::keys::SmallKeyVector< K, T >::front ( ) const
inline

◆ has()

template<typename K , typename T >
bool utility::keys::SmallKeyVector< K, T >::has ( Key const &  key) const
inline

◆ inactive()

template<typename K , typename T >
bool utility::keys::SmallKeyVector< K, T >::inactive ( Key const &  key) const
inline

◆ index()

template<typename K , typename T >
Index const& utility::keys::SmallKeyVector< K, T >::index ( Key const &  key)
inline

◆ insert() [1/3]

template<typename K , typename T >
template<typename InputIterator >
void utility::keys::SmallKeyVector< K, T >::insert ( Iterator const &  pos,
InputIterator const &  beg,
InputIterator const &  end 
)
inline

Insert elements from iterator range [beg,end) at an iterator position.

References utility::keys::SmallKeyVector< K, T >::end(), make_symmdef_file_denovo::pos, and utility::keys::SmallKeyVector< K, T >::v_.

◆ insert() [2/3]

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::insert ( Iterator const &  pos,
Size  num,
Value const &  value 
)
inline

Insert num copies of an element at an iterator position.

References make_symmdef_file_denovo::pos, utility::keys::SmallKeyVector< K, T >::v_, and value.

◆ insert() [3/3]

template<typename K , typename T >
Iterator utility::keys::SmallKeyVector< K, T >::insert ( Iterator const &  pos,
Value const &  value 
)
inline

Insert an element at an iterator position.

References make_symmdef_file_denovo::pos, utility::keys::SmallKeyVector< K, T >::v_, and value.

◆ max_size()

template<typename K , typename T >
Size utility::keys::SmallKeyVector< K, T >::max_size ( ) const
inline

◆ operator()()

template<typename K , typename T >
Reference utility::keys::SmallKeyVector< K, T >::operator() ( Key const &  key)
inline

SmallKeyVector( key )

Note
Activates the key if inactive
Expands the vector if necessary

References utility::keys::SmallKeyVector< K, T >::add_key(), subloop_histogram::key, and utility::keys::SmallKeyVector< K, T >::v_.

◆ operator=() [1/2]

template<typename K , typename T >
SmallKeyVector& utility::keys::SmallKeyVector< K, T >::operator= ( SmallKeyVector< K, T > const &  a)
inline

◆ operator=() [2/2]

template<typename K , typename T >
SmallKeyVector& utility::keys::SmallKeyVector< K, T >::operator= ( Value const &  value)
inline

Uniform value assignment to current elements.

References test.T009_Exceptions::e, create_a3b_hbs::i, utility::keys::SmallKeyVector< K, T >::v_, and value.

◆ operator[]() [1/4]

template<typename K , typename T >
Reference utility::keys::SmallKeyVector< K, T >::operator[] ( Index const &  i)
inline

◆ operator[]() [2/4]

template<typename K , typename T >
ConstReference utility::keys::SmallKeyVector< K, T >::operator[] ( Index const &  i) const
inline

◆ operator[]() [3/4]

template<typename K , typename T >
Reference utility::keys::SmallKeyVector< K, T >::operator[] ( Key const &  key)
inline

◆ operator[]() [4/4]

template<typename K , typename T >
ConstReference utility::keys::SmallKeyVector< K, T >::operator[] ( Key const &  key) const
inline

◆ pop_back()

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::pop_back ( )
inline

Removes the last element.

References debug_assert, and utility::keys::SmallKeyVector< K, T >::v_.

◆ push_back()

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::push_back ( Value const &  value)
inline

Appends an element.

References utility::keys::SmallKeyVector< K, T >::v_, and value.

◆ rbegin() [1/2]

template<typename K , typename T >
ReverseIterator utility::keys::SmallKeyVector< K, T >::rbegin ( )
inline

Begin reverse iterator.

References utility::keys::SmallKeyVector< K, T >::v_.

◆ rbegin() [2/2]

template<typename K , typename T >
ConstReverseIterator utility::keys::SmallKeyVector< K, T >::rbegin ( ) const
inline

Begin reverse iterator.

References utility::keys::SmallKeyVector< K, T >::v_.

◆ rend() [1/2]

template<typename K , typename T >
ReverseIterator utility::keys::SmallKeyVector< K, T >::rend ( )
inline

End reverse iterator.

References utility::keys::SmallKeyVector< K, T >::v_.

◆ rend() [2/2]

template<typename K , typename T >
ConstReverseIterator utility::keys::SmallKeyVector< K, T >::rend ( ) const
inline

End reverse iterator.

References utility::keys::SmallKeyVector< K, T >::v_.

◆ reserve()

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::reserve ( Size  num)
inline

Reserve space for a given number of elements.

References utility::keys::SmallKeyVector< K, T >::v_.

◆ resize() [1/2]

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::resize ( Size  num)
inline

Resize: Default construct new elements.

References utility::keys::SmallKeyVector< K, T >::v_.

Referenced by PyMOL-Rosetta-relay-client.SecretInputDialog::__init__().

◆ resize() [2/2]

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::resize ( Size  num,
Value const &  value 
)
inline

Resize: Assign given value to new elements.

References utility::keys::SmallKeyVector< K, T >::v_, and value.

Referenced by PyMOL-Rosetta-relay-client.SecretInputDialog::__init__().

◆ shrink()

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::shrink ( )
inline

◆ size()

template<typename K , typename T >
Size utility::keys::SmallKeyVector< K, T >::size ( ) const
inline

◆ swap()

template<typename K , typename T >
void utility::keys::SmallKeyVector< K, T >::swap ( SmallKeyVector< K, T > &  a)
inline

Friends And Related Function Documentation

◆ operator!=

template<typename K , typename T >
bool operator!= ( SmallKeyVector< K, T > const &  a,
SmallKeyVector< K, T > const &  b 
)
friend

◆ operator==

template<typename K , typename T >
bool operator== ( SmallKeyVector< K, T > const &  a,
SmallKeyVector< K, T > const &  b 
)
friend

◆ swap

template<typename K , typename T >
template<typename UK , typename UT >
void swap ( SmallKeyVector< UK, UT > &  a,
SmallKeyVector< UK, UT > &  b 
)
friend

swap( SmallKeyVector, SmallKeyVector )

Member Data Documentation

◆ m_

template<typename K , typename T >
IndexMap utility::keys::SmallKeyVector< K, T >::m_
private

◆ u_

template<typename K , typename T >
Index utility::keys::SmallKeyVector< K, T >::u_
private

◆ v_

template<typename K , typename T >
Vector utility::keys::SmallKeyVector< K, T >::v_
private

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