| OpenMS 2.5.0

Classes | Public Member Functions | Protected Attributes | Friends | List of all members
ConstRefVector< ContainerT > Class Template Reference
Datastructures

This vector holds pointer to the elements of another container. More...

`#include <OpenMS/DATASTRUCTURES/ConstRefVector.h>`

## Classes

class | ConstRefVectorConstIterator
| ConstIterator for the ConstRefVector. More...
class | ConstRefVectorIterator
| Mutable iterator for the ConstRefVector. More...

## Public Types

typedef ContainerT | ContainerType
| Type definitions. More...
typedef ContainerType::value_type | ValueType
typedef ConstRefVectorIterator< const ValueType > | Iterator
typedef ConstRefVectorConstIterator< const ValueType > | ConstIterator
typedef std::reverse_iterator< Iterator > | ReverseIterator
typedef std::reverse_iterator< ConstIterator > | ConstReverseIterator
typedef ValueType | value_type
| STL-compliance type definitions. More...
typedef ContainerType::size_type | size_type
typedef ContainerType::difference_type | difference_type
typedef ContainerType::reference | reference
typedef ContainerType::const_reference | const_reference
typedef ContainerType::pointer | pointer
typedef Iterator | iterator
typedef ConstIterator | const_iterator
typedef ReverseIterator | reverse_iterator
typedef ConstReverseIterator | const_reverse_iterator

## Public Member Functions

void | push_back (const ValueType &x)
| See std::vector documentation. More...
void | pop_back ()
| See std::vector documentation. More...
size_type | size () const
| See std::vector documentation. More...
size_type | capacity () const
| See std::vector documentation. More...
void | reserve (size_type n)
| See std::vector documentation. More...
size_type | max_size () const
| See std::vector documentation. More...
Iterator | begin ()
| See std::vector documentation. More...
Iterator | end ()
| See std::vector documentation. More...
ConstIterator | begin () const
| See std::vector documentation. More...
ConstIterator | end () const
| See std::vector documentation. More...
ReverseIterator | rbegin ()
| See std::vector documentation. More...
ReverseIterator | rend ()
| See std::vector documentation. More...
ConstReverseIterator | rbegin () const
| See std::vector documentation. More...
ConstReverseIterator | rend () const
| See std::vector documentation. More...
void | resize (size_type new_size)
| See std::vector documentation. More...
void | resize (size_type new_size, const ValueType &t)
| See std::vector documentation. More...
const_reference | front () const
| See std::vector documentation. More...
const_reference | back () const
| See std::vector documentation. More...
void | clear ()
| See std::vector documentation. More...
bool | empty () const
| See std::vector documentation. More...
const_reference | operator[] (size_type n) const
| See std::vector documentation. More...
bool | operator== (const ConstRefVector &array) const
| See std::vector documentation. More...
bool | operator!= (const ConstRefVector &array) const
| See std::vector documentation. More...
bool | operator< (const ConstRefVector &array) const
| Comparison of container sizes. More...
bool | operator> (const ConstRefVector &array) const
| Comparison of container sizes. More...
bool | operator<= (const ConstRefVector &array) const
| Comparison of container sizes. More...
bool | operator>= (const ConstRefVector &array) const
| Comparison of container sizes. More...
void | swap (ConstRefVector &array)
| See std::vector documentation. More...
Iterator | insert (Iterator pos, const ValueType &element)
| See std::vector documentation. More...
void | insert (Iterator pos, size_type n, const ValueType &element)
| See std::vector documentation. More...
template<class InputIterator >
void | insert (Iterator pos, InputIterator f, InputIterator l)
| See std::vector documentation. More...
Iterator | erase (Iterator pos)
| See std::vector documentation. More...
Iterator | erase (Iterator first, Iterator last)
| See std::vector documentation. More...
ConstRefVector & | operator= (const ConstRefVector &rhs)
| See std::vector documentation. More...
template<class InputIterator >
void | assign (InputIterator f, InputIterator l)
| See std::vector documentation. More...
void | assign (size_type n, const ValueType &x)
| See std::vector documentation. More...
Constructors and Destructor
| ConstRefVector ()
| See std::vector documentation. More...
| ConstRefVector (size_type n)
| See std::vector documentation. More...
| ConstRefVector (size_type n, const ValueType &element)
| See std::vector documentation. More...
| ConstRefVector (const ConstRefVector &p)
| See std::vector documentation. More...
template<class InputIterator >
| ConstRefVector (InputIterator f, InputIterator l)
| See std::vector documentation. More...
| ConstRefVector (ContainerType &p)
| See std::vector documentation. More...
| ~ConstRefVector ()
| See std::vector documentation. More...
void | sortByIntensity (bool reverse=false)
| Sorting. More...
void | sortByPosition ()
| Lexicographically sorts the elements by their position. More...
Generic sorting function templates.
Any element comparator can be given as template argument. You can also give the comparator as an argument to the function template (this is useful if the comparator is not default constructed, but keep in mind that STL copies comparators a lot).

Thus your can e.g. write `elements.sortByComparator < DFeature<1>::IntensityLess > ()`, if elements have type `ConstRefVector < 1, DFeature <1> >`.

template<typename ComparatorType >
void | sortByComparator (ComparatorType const &comparator=ComparatorType())

## Protected Attributes

std::vector< const ValueType * > | vector_
| the internal vector of ValueType pointers More...
size_type | capacity_
| the current capacity More...
const ContainerType * | base_container_ptr_
| Pointer to the base container. More...

## Friends

void | swap (ConstRefVector &a1, ConstRefVector &a2)
| See std::vector documentation. More...

## Detailed Description

### template<typename ContainerT>
class OpenMS::ConstRefVector< ContainerT >

This vector holds pointer to the elements of another container.

If you for example want to sort the elements of a constant container, you would have to copy the whole container.
To avoid copy actions this class only holds pointer to the constant elements of a container.
You can insert new elements, but it is not possible to change existing ones.

The following code demonstrates the use of this class:

FeatureMap<> map;
map.resize(10); //...fill map with data
//Create pointer vector to the map
ConstRefVector<FeatureMap<> > ref_vector(map);
//Sort the pointer vector without changing the original data
ref_vector.sortByIntensity();

Improvement:
  Check if we can omit the iterator template arguments (Clemens)

## Member Typedef Documentation

## ◆ const_iterator

typedef ConstIterator const_iterator

## ◆ const_reference

typedef ContainerType::const_reference const_reference

## ◆ const_reverse_iterator

typedef ConstReverseIterator const_reverse_iterator

## ◆ ConstIterator

typedef ConstRefVectorConstIterator<const ValueType> ConstIterator

## ◆ ConstReverseIterator

typedef std::reverse_iterator<ConstIterator> ConstReverseIterator

## ◆ ContainerType

typedef ContainerT ContainerType

Type definitions.

Wrapped container type

## ◆ difference_type

typedef ContainerType::difference_type difference_type

## ◆ Iterator

typedef ConstRefVectorIterator<const ValueType> Iterator

## ◆ iterator

typedef Iterator iterator

## ◆ pointer

typedef ContainerType::pointer pointer

## ◆ reference

typedef ContainerType::reference reference

## ◆ reverse_iterator

typedef ReverseIterator reverse_iterator

## ◆ ReverseIterator

typedef std::reverse_iterator<Iterator> ReverseIterator

## ◆ size_type

typedef ContainerType::size_type size_type

## ◆ value_type

typedef ValueType value_type

STL-compliance type definitions.

## ◆ ValueType

typedef ContainerType::value_type ValueType

## Constructor & Destructor Documentation

## ◆ ConstRefVector() [1/6]

ConstRefVector | ( |  | ) |

inline

See std::vector documentation.

## ◆ ConstRefVector() [2/6]

ConstRefVector | ( | size_type | n | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ ConstRefVector() [3/6]

ConstRefVector | ( | size_type | n,
|  | const ValueType & | element
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ ConstRefVector() [4/6]

ConstRefVector | ( | const ConstRefVector< ContainerT > & | p | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::begin(), ConstRefVector< ContainerT >::end(), and ConstRefVector< ContainerT >::vector_.

## ◆ ConstRefVector() [5/6]

ConstRefVector | ( | InputIterator | f,
|  | InputIterator | l
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ ConstRefVector() [6/6]

ConstRefVector | ( | ContainerType & | p | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ ~ConstRefVector()

~ConstRefVector | ( |  | ) |

inline

See std::vector documentation.

## Member Function Documentation

## ◆ assign() [1/2]

void assign | ( | InputIterator | f,
|  | InputIterator | l
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::clear(), ConstRefVector< ContainerT >::end(), and ConstRefVector< ContainerT >::insert().

## ◆ assign() [2/2]

void assign | ( | size_type | n,
|  | const ValueType & | x
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::clear(), ConstRefVector< ContainerT >::end(), and ConstRefVector< ContainerT >::insert().

## ◆ back()

const_reference back | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::end().

## ◆ begin() [1/2]

Iterator begin | ( |  | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

Referenced by ConstRefVector< ContainerT >::ConstRefVector(), ConstRefVector< ContainerT >::front(), ConstRefVector< ContainerT >::operator=(), and ConstRefVector< ContainerT >::rend().

## ◆ begin() [2/2]

ConstIterator begin | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ capacity()

size_type capacity | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::capacity_, and ConstRefVector< ContainerT >::vector_.

Referenced by ConstRefVector< ContainerT >::reserve().

## ◆ clear()

void clear | ( |  | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

Referenced by ConstRefVector< ContainerT >::assign(), and ConstRefVector< ContainerT >::operator=().

## ◆ empty()

bool empty | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ end() [1/2]

Iterator end | ( |  | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

Referenced by ConstRefVector< ContainerT >::assign(), ConstRefVector< ContainerT >::back(), ConstRefVector< ContainerT >::ConstRefVector(), ConstRefVector< ContainerT >::operator=(), and ConstRefVector< ContainerT >::rbegin().

## ◆ end() [2/2]

ConstIterator end | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ erase() [1/2]

Iterator erase | ( | Iterator | pos | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::ConstRefVectorConstIterator< ValueT >::position_, and ConstRefVector< ContainerT >::vector_.

## ◆ erase() [2/2]

Iterator erase | ( | Iterator | first,
|  | Iterator | last
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::ConstRefVectorConstIterator< ValueT >::position_, and ConstRefVector< ContainerT >::vector_.

## ◆ front()

const_reference front | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::begin().

## ◆ insert() [1/3]

Iterator insert | ( | Iterator | pos,
|  | const ValueType & | element
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::ConstRefVectorConstIterator< ValueT >::position_, and ConstRefVector< ContainerT >::vector_.

Referenced by ConstRefVector< ContainerT >::assign().

## ◆ insert() [2/3]

void insert | ( | Iterator | pos,
|  | size_type | n,
|  | const ValueType & | element
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::ConstRefVectorConstIterator< ValueT >::position_, and ConstRefVector< ContainerT >::vector_.

## ◆ insert() [3/3]

void insert | ( | Iterator | pos,
|  | InputIterator | f,
|  | InputIterator | l
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::ConstRefVectorConstIterator< ValueT >::position_, and ConstRefVector< ContainerT >::vector_.

## ◆ max_size()

size_type max_size | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ operator!=()

bool operator!= | ( | const ConstRefVector< ContainerT > & | array | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::operator==().

## ◆ operator<()

bool operator< | ( | const ConstRefVector< ContainerT > & | array | ) | const

inline

Comparison of container sizes.

References ConstRefVector< ContainerT >::size().

Referenced by ConstRefVector< ContainerT >::operator<=().

## ◆ operator<=()

bool operator<= | ( | const ConstRefVector< ContainerT > & | array | ) | const

inline

Comparison of container sizes.

References ConstRefVector< ContainerT >::operator<(), and ConstRefVector< ContainerT >::operator==().

## ◆ operator=()

ConstRefVector& operator= | ( | const ConstRefVector< ContainerT > & | rhs | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::base_container_ptr_, ConstRefVector< ContainerT >::begin(), ConstRefVector< ContainerT >::clear(), ConstRefVector< ContainerT >::end(), ConstRefVector< ContainerT >::reserve(), ConstRefVector< ContainerT >::size(), and ConstRefVector< ContainerT >::vector_.

## ◆ operator==()

bool operator== | ( | const ConstRefVector< ContainerT > & | array | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::base_container_ptr_, ConstRefVector< ContainerT >::size(), and ConstRefVector< ContainerT >::vector_.

Referenced by ConstRefVector< ContainerT >::operator!=(), ConstRefVector< ContainerT >::operator<=(), and ConstRefVector< ContainerT >::operator>=().

## ◆ operator>()

bool operator> | ( | const ConstRefVector< ContainerT > & | array | ) | const

inline

Comparison of container sizes.

References ConstRefVector< ContainerT >::size().

Referenced by ConstRefVector< ContainerT >::operator>=().

## ◆ operator>=()

bool operator>= | ( | const ConstRefVector< ContainerT > & | array | ) | const

inline

Comparison of container sizes.

References ConstRefVector< ContainerT >::operator==(), and ConstRefVector< ContainerT >::operator>().

## ◆ operator[]()

const_reference operator[] | ( | size_type | n | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ pop_back()

void pop_back | ( |  | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ push_back()

void push_back | ( | const ValueType & | x | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## ◆ rbegin() [1/2]

ReverseIterator rbegin | ( |  | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::end().

## ◆ rbegin() [2/2]

ConstReverseIterator rbegin | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::end().

## ◆ rend() [1/2]

ReverseIterator rend | ( |  | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::begin().

## ◆ rend() [2/2]

ConstReverseIterator rend | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::begin().

## ◆ reserve()

void reserve | ( | size_type | n | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::capacity(), ConstRefVector< ContainerT >::capacity_, and ConstRefVector< ContainerT >::vector_.

Referenced by ConstRefVector< ContainerT >::operator=().

## ◆ resize() [1/2]

void resize | ( | size_type | new_size | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::capacity_, and ConstRefVector< ContainerT >::vector_.

## ◆ resize() [2/2]

void resize | ( | size_type | new_size,
|  | const ValueType & | t
| ) |  |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::capacity_, and ConstRefVector< ContainerT >::vector_.

## ◆ size()

size_type size | ( |  | ) | const

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

Referenced by ConstRefVector< ContainerT >::operator<(), ConstRefVector< ContainerT >::operator=(), ConstRefVector< ContainerT >::operator==(), and ConstRefVector< ContainerT >::operator>().

## ◆ sortByComparator()

void sortByComparator | ( | ComparatorType const & | comparator = `ComparatorType()` | ) |

inline

References OpenMS::pointerComparator(), and ConstRefVector< ContainerT >::vector_.

## ◆ sortByIntensity()

void sortByIntensity | ( | bool | reverse = `false` | ) |

inline

Sorting.

These simplified sorting methods are supported for convenience.

Note
  To use these methods, the ValueType must provide an interface similar to Peak1D or Peak2D.Sorts the elements by intensity

References OpenMS::pointerComparator(), OpenMS::reverseComparator(), and ConstRefVector< ContainerT >::vector_.

Referenced by IsotopeWaveletTransform< PeakType >::identifyCharge().

## ◆ sortByPosition()

void sortByPosition | ( |  | ) |

inline

Lexicographically sorts the elements by their position.

References OpenMS::pointerComparator(), and ConstRefVector< ContainerT >::vector_.

## ◆ swap()

void swap | ( | ConstRefVector< ContainerT > & | array | ) |

inline

See std::vector documentation.

References ConstRefVector< ContainerT >::vector_.

## Friends And Related Function Documentation

## ◆ swap

void swap | ( | ConstRefVector< ContainerT > & | a1,
|  | ConstRefVector< ContainerT > & | a2
| ) |  |

friend

See std::vector documentation.

## Member Data Documentation

## ◆ base_container_ptr_

const ContainerType* base_container_ptr_

protected

Pointer to the base container.

Referenced by ConstRefVector< ContainerT >::operator=(), and ConstRefVector< ContainerT >::operator==().

## ◆ capacity_

size_type capacity_

protected

the current capacity

Referenced by ConstRefVector< ContainerT >::capacity(), ConstRefVector< ContainerT >::reserve(), and ConstRefVector< ContainerT >::resize().

## ◆ vector_

std::vector<const ValueType*> vector_

protected

the internal vector of ValueType pointers

Referenced by ConstRefVector< ContainerT >::begin(), ConstRefVector< ContainerT >::capacity(), ConstRefVector< ContainerT >::clear(), ConstRefVector< ContainerT >::ConstRefVector(), ConstRefVector< ContainerT >::empty(), ConstRefVector< ContainerT >::end(), ConstRefVector< ContainerT >::erase(), ConstRefVector< ContainerT >::insert(), ConstRefVector< ContainerT >::max_size(), ConstRefVector< ContainerT >::operator=(), ConstRefVector< ContainerT >::operator==(), ConstRefVector< ContainerT >::operator[](), ConstRefVector< ContainerT >::pop_back(), ConstRefVector< ContainerT >::push_back(), ConstRefVector< ContainerT >::reserve(), ConstRefVector< ContainerT >::resize(), ConstRefVector< ContainerT >::size(), ConstRefVector< ContainerT >::sortByComparator(), ConstRefVector< ContainerT >::sortByIntensity(), ConstRefVector< ContainerT >::sortByPosition(), and ConstRefVector< ContainerT >::swap().