Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
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, doubleClusterCenter
 Coordinate for stored pairs. More...
 
typedef DPosition< 2, Int64CellIndex
 Index for cells. More...
 
typedef boost::unordered_multimap< ClusterCenter, Cluster > CellContent
 Contents of a cell. More...
 
typedef boost::unordered_map< CellIndex, CellContentGrid
 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 &cell_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 CellIndexgrid_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
ClusterType to be stored in the hash grid. (e.g. HierarchicalClustering::Cluster)

Member Typedef Documentation

typedef CellContent::iterator cell_iterator
typedef boost::unordered_multimap<ClusterCenter, Cluster> CellContent

Contents of a cell.

typedef DPosition<2, Int64> CellIndex

Index for cells.

Coordinate for stored pairs.

typedef CellContent::const_iterator const_cell_iterator
typedef Grid::const_iterator const_grid_iterator
typedef boost::unordered_map<CellIndex, CellContent> Grid

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

typedef Grid::iterator grid_iterator
typedef Iterator iterator
typedef CellContent::key_type key_type
typedef CellContent::mapped_type mapped_type
typedef CellContent::size_type size_type
typedef CellContent::value_type value_type

Constructor & Destructor Documentation

HashGrid ( const ClusterCenter cell_dimension)
inline

Member Function Documentation

iterator begin ( )
inline

Returns iterator to first element.

References HashGrid< Cluster >::end().

const_iterator begin ( ) const
inline

Returns iterator to first element.

References HashGrid< Cluster >::end().

CellIndex cellindexAtClustercenter_ ( const ClusterCenter key)
inlineprivate
void clear ( )
inline

Clears the map.

bool empty ( ) const
inline

Return true if HashGrid is empty.

References HashGrid< Cluster >::size().

iterator end ( )
inline

Returns iterator to first element.

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

const_iterator end ( ) const
inline

Returns iterator to first element.

void erase ( iterator  pos)
inline

Erases element on given iterator.

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

size_type erase ( const key_type key)
inline

Erases elements matching the 2-dimensional coordinate.

Parameters
keyKey of element to be erased.
Returns
Number of elements erased.

References HashGrid< Cluster >::cellindexAtClustercenter_().

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

Returns the grid cell at given index.

Grid::mapped_type& grid_at ( const CellIndex x)
inline
Warning
Currently needed non-const by HierarchicalClustering.
const_grid_iterator grid_begin ( ) const
inline

Returns iterator to first grid cell.

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

grid_iterator grid_begin ( )
inline
Warning
Currently needed non-const by HierarchicalClustering.
const_grid_iterator grid_end ( ) const
inline

Returns iterator to on after last grid cell.

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

grid_iterator grid_end ( )
inline
Warning
Currently needed non-const by HierarchicalClustering.
cell_iterator insert ( const value_type v)
inline

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

Parameters
vPair to be inserted.
Returns
Iterator that points to the inserted pair.

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

size_type size ( ) const
inline

Return number of elements.

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

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

void updateGridDimension_ ( const CellIndex d)
inlineprivate

Member Data Documentation

const ClusterCenter cell_dimension

Dimension of cells.

Grid cells_
private
const CellIndex& grid_dimension

Upper-right corner of key space for cells.

CellIndex grid_dimension_
private

OpenMS / TOPP release 2.0.0 Documentation generated on Sat May 16 2015 16:13:52 using doxygen 1.8.9.1