| OpenMS 2.5.0

Classes | Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
HashGrid< Cluster > Class Template Reference

Container for (2-dimensional coordinate, value) pairs. More...

`#include <OpenMS/COMPARISON/CLUSTERING/HashGrid.h>`

## Classes

class | ConstIterator
| Constant element iterator for the hash grid. More...
class | Iterator
| Element iterator for the hash grid. More...

## Public Types

typedef DPosition< 2, double > | ClusterCenter
| Coordinate for stored pairs. More...
typedef DPosition< 2, Int64 > | CellIndex
| Index for cells. More...
typedef boost::unordered_multimap< ClusterCenter, Cluster > | CellContent
| Contents of a cell. More...
typedef boost::unordered_map< CellIndex, CellContent > | Grid
| Map of (cell-index, cell-content). More...
typedef CellContent::key_type | key_type
typedef CellContent::mapped_type | mapped_type
typedef CellContent::value_type | value_type
typedef ConstIterator | const_iterator
typedef Iterator | iterator
typedef Grid::const_iterator | const_grid_iterator
typedef Grid::iterator | grid_iterator
typedef CellContent::const_iterator | const_cell_iterator
typedef CellContent::iterator | cell_iterator
typedef CellContent::size_type | size_type

## Public Member Functions

| HashGrid (const ClusterCenter &c_dimension)
cell_iterator | insert (const value_type &v)
| Inserts a (2-dimensional coordinate, value) pair. More...
void | erase (iterator pos)
| Erases element on given iterator. More...
size_type | erase (const key_type &key)
| Erases elements matching the 2-dimensional coordinate. More...
void | clear ()
| Clears the map. More...
iterator | begin ()
| Returns iterator to first element. More...
const_iterator | begin () const
| Returns iterator to first element. More...
iterator | end ()
| Returns iterator to first element. More...
const_iterator | end () const
| Returns iterator to first element. More...
bool | empty () const
| Return true if HashGrid is empty. More...
size_type | size () const
| Return number of elements. More...
const_grid_iterator | grid_begin () const
| Returns iterator to first grid cell. More...
const_grid_iterator | grid_end () const
| Returns iterator to on after last grid cell. More...
const Grid::mapped_type & | grid_at (const CellIndex &x) const
| Returns the grid cell at given index. More...
grid_iterator | grid_begin ()
grid_iterator | grid_end ()
Grid::mapped_type & | grid_at (const CellIndex &x)

## Public Attributes

const ClusterCenter | cell_dimension
| Dimension of cells. More...
const CellIndex & | grid_dimension
| Upper-right corner of key space for cells. More...

## Private Member Functions

CellIndex | cellindexAtClustercenter_ (const ClusterCenter &key)
void | updateGridDimension_ (const CellIndex &d)

## Private Attributes

Grid | cells_
CellIndex | grid_dimension_

## Detailed Description

### template<typename Cluster>
class OpenMS::HashGrid< Cluster >

Container for (2-dimensional coordinate, value) pairs.

A hash-grid consists of hash-grid cells. The key of each cell is a pair of integers. Each pair is assigned to a cell using a hash function.

This container implements most parts of the C++ standard map interface.

Template Parameters

  Cluster | Type to be stored in the hash grid. (e.g. HierarchicalClustering::Cluster)

## Member Typedef Documentation

## ◆ cell_iterator

typedef CellContent::iterator cell_iterator

## ◆ CellContent

typedef boost::unordered_multimap<ClusterCenter, Cluster> CellContent

Contents of a cell.

## ◆ CellIndex

typedef DPosition<2, Int64> CellIndex

Index for cells.

## ◆ ClusterCenter

typedef DPosition<2, double> ClusterCenter

Coordinate for stored pairs.

## ◆ const_cell_iterator

typedef CellContent::const_iterator const_cell_iterator

## ◆ const_grid_iterator

typedef Grid::const_iterator const_grid_iterator

## ◆ const_iterator

typedef ConstIterator const_iterator

## ◆ Grid

typedef boost::unordered_map<CellIndex, CellContent> Grid

Map of (cell-index, cell-content).

## ◆ grid_iterator

typedef Grid::iterator grid_iterator

## ◆ iterator

typedef Iterator iterator

## ◆ key_type

typedef CellContent::key_type key_type

## ◆ mapped_type

typedef CellContent::mapped_type mapped_type

## ◆ size_type

typedef CellContent::size_type size_type

## ◆ value_type

typedef CellContent::value_type value_type

## Constructor & Destructor Documentation

## ◆ HashGrid()

HashGrid | ( | const ClusterCenter & | c_dimension | ) |

inline

## Member Function Documentation

## ◆ begin() [1/2]

iterator begin | ( |  | ) |

inline

Returns iterator to first element.

References HashGrid< Cluster >::cells_, and HashGrid< Cluster >::end().

## ◆ begin() [2/2]

const_iterator begin | ( |  | ) | const

inline

Returns iterator to first element.

References HashGrid< Cluster >::cells_, and HashGrid< Cluster >::end().

## ◆ cellindexAtClustercenter_()

CellIndex cellindexAtClustercenter_ | ( | const ClusterCenter & | key | ) |

inline private

References DPosition< D, TCoordinateType >::begin(), HashGrid< Cluster >::cell_dimension, and DPosition< D, TCoordinateType >::end().

Referenced by HashGrid< Cluster >::erase(), and HashGrid< Cluster >::insert().

## ◆ clear()

void clear | ( |  | ) |

inline

Clears the map.

References HashGrid< Cluster >::cells_.

## ◆ empty()

bool empty | ( |  | ) | const

inline

Return true if HashGrid is empty.

References HashGrid< Cluster >::size().

## ◆ end() [1/2]

iterator end | ( |  | ) |

inline

Returns iterator to first element.

References HashGrid< Cluster >::cells_.

Referenced by HashGrid< Cluster >::begin().

## ◆ end() [2/2]

const_iterator end | ( |  | ) | const

inline

Returns iterator to first element.

References HashGrid< Cluster >::cells_.

## ◆ erase() [1/2]

void erase | ( | iterator | pos | ) |

inline

Erases element on given iterator.

References HashGrid< Cluster >::Iterator::cell_it_, and HashGrid< Cluster >::Iterator::grid_it_.

## ◆ erase() [2/2]

size_type erase | ( | const key_type & | key | ) |

inline

Erases elements matching the 2-dimensional coordinate.

Parameters

  key | Key of element to be erased.

Returns
  Number of elements erased.

References HashGrid< Cluster >::cellindexAtClustercenter_(), and HashGrid< Cluster >::cells_.

## ◆ grid_at() [1/2]

const Grid::mapped_type& grid_at | ( | const CellIndex & | x | ) | const

inline

Returns the grid cell at given index.

References HashGrid< Cluster >::cells_.

## ◆ grid_at() [2/2]

Grid::mapped_type& grid_at | ( | const CellIndex & | x | ) |

inline

Warning
  Currently needed non-const by HierarchicalClustering.

References HashGrid< Cluster >::cells_.

## ◆ grid_begin() [1/2]

const_grid_iterator grid_begin | ( |  | ) | const

inline

Returns iterator to first grid cell.

References HashGrid< Cluster >::cells_.

Referenced by HashGrid< Cluster >::size().

## ◆ grid_begin() [2/2]

grid_iterator grid_begin | ( |  | ) |

inline

Warning
  Currently needed non-const by HierarchicalClustering.

References HashGrid< Cluster >::cells_.

## ◆ grid_end() [1/2]

const_grid_iterator grid_end | ( |  | ) | const

inline

Returns iterator to on after last grid cell.

References HashGrid< Cluster >::cells_.

Referenced by HashGrid< Cluster >::size().

## ◆ grid_end() [2/2]

grid_iterator grid_end | ( |  | ) |

inline

Warning
  Currently needed non-const by HierarchicalClustering.

References HashGrid< Cluster >::cells_.

## ◆ insert()

cell_iterator insert | ( | const value_type & | v | ) |

inline

Inserts a (2-dimensional coordinate, value) pair.

Parameters

  v | Pair to be inserted.

Returns
  Iterator that points to the inserted pair.

References HashGrid< Cluster >::cellindexAtClustercenter_(), HashGrid< Cluster >::cells_, and HashGrid< Cluster >::updateGridDimension_().

## ◆ size()

size_type size | ( |  | ) | const

inline

Return number of elements.

References HashGrid< Cluster >::grid_begin(), and HashGrid< Cluster >::grid_end().

Referenced by HashGrid< Cluster >::empty().

## ◆ updateGridDimension_()

void updateGridDimension_ | ( | const CellIndex & | d | ) |

inline private

References DPosition< D, TCoordinateType >::begin(), DPosition< D, TCoordinateType >::end(), and HashGrid< Cluster >::grid_dimension_.

Referenced by HashGrid< Cluster >::insert().

## Member Data Documentation

## ◆ cell_dimension

const ClusterCenter cell_dimension

Dimension of cells.

Referenced by HashGrid< Cluster >::cellindexAtClustercenter_().

## ◆ cells_

Grid cells_

private

Referenced by HashGrid< Cluster >::begin(), HashGrid< Cluster >::clear(), HashGrid< Cluster >::end(), HashGrid< Cluster >::erase(), HashGrid< Cluster >::grid_at(), HashGrid< Cluster >::grid_begin(), HashGrid< Cluster >::grid_end(), and HashGrid< Cluster >::insert().

## ◆ grid_dimension

const CellIndex& grid_dimension

Upper-right corner of key space for cells.

## ◆ grid_dimension_

CellIndex grid_dimension_

private

Referenced by HashGrid< Cluster >::updateGridDimension_().