casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions
casa::HashMapIter< key, val > Class Template Reference

   Step through a non-const HashMap
More...

#include <HashMapIter.h>

Inheritance diagram for casa::HashMapIter< key, val >:
casa::ConstHashMapIter< key, val >

List of all members.

Public Member Functions

val & getVal ()
 Get the key or value for the current position in the Map.
virtual const val & getVal () const
val & define (const key &k, const val &v)
 These functions allow for the definition and removal of key/value relations.
void remove (const key &k)
const val & defaultVal () const
 This returns the default value for the map that this iterator is tracking.
val & defaultVal ()
void clear ()
 Clear all of the mappings.
const val & operator() (const key &ky) const
 Allows mapping functions to be performed with the map on which this iterator operates.
val & operator() (const key &ky)
 HashMapIter (HashMap< key, val > &st)
 This allows a MapIter to be constructed from a Map.
 HashMapIter (const HashMapIter< key, val > &other)
 This allows a MapIter to be constructed from another MapIter.
 HashMapIter ()
 Default constructor creates an invalid Map iterator.
virtual HashMapIter< key, val > & operator= (HashMap< key, val > &other)
 This assignment operator allows the Map which this MapIter tracks to be changed.
virtual HashMapIter< key, val > & operator= (const HashMapIter< key, val > &other)
 This assignment operator allows the Map which this MapIter tracks to be changed.
HashMap< key, val > & container ()
 Returns the container on which this iterator is operating.
const HashMap< key, val > & container () const
 Returns the container on which this iterator is operating.
 ~HashMapIter ()
 dtor

Protected Member Functions

ConstHashMapIter< key, val > & operator= (const HashMap< key, val > &)
 Assign one map iterator to a map (with reference semantics).
ConstHashMapIter< key, val > & operator= (const ConstHashMapIter< key, val > &)
 Assign one map iterator to another iterator (with reference semantics).

Detailed Description

template<class key, class val>
class casa::HashMapIter< key, val >

   Step through a non-const HashMap

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Synopsis

This class is an iterator, and it used to step through non-const HashMap s. This is useful when one wishes to find each of the user defined mappings in a particular map.

Example

       #include <aips/Containers/HashMap.h>
       #include <casa/BasicSL/String.h>
    #include <iostream>
      
       main() {
         HashMap<String,Int> hash;
       
         hash.define("one",1);
         hash.define("two",2);
         hash.define("three",3);
         hash.define("four",4);
         hash.define("five",5);
         hash.define("six",6);
       
         HashMapIter<String,Int> iter(hash);
         for ( iter.toStart(); ! iter.atEnd(); iter++ )
             cout << iter.getVal() << ": " << iter.getKey() << endl;
       }

Motivation

Same as ConstHashMapIter , but allows for modification of the underlying structure.

Definition at line 253 of file HashMapIter.h.


Constructor & Destructor Documentation

template<class key, class val>
casa::HashMapIter< key, val >::HashMapIter ( HashMap< key, val > &  st) [inline]

This allows a MapIter to be constructed from a Map.

When created the new MapIter maintains a reference to the original Map. If the Map to which this MapIter points is deleted, then the MapIter is marked as invalid.

Definition at line 334 of file HashMapIter.h.

template<class key, class val>
casa::HashMapIter< key, val >::HashMapIter ( const HashMapIter< key, val > &  other) [inline]

This allows a MapIter to be constructed from another MapIter.

When created the new MapIter maintains a reference to the Map which the MapIter parameter tracked. If this Map is deleted, then this MapIter is marked as invalid.

Definition at line 342 of file HashMapIter.h.

template<class key, class val>
casa::HashMapIter< key, val >::HashMapIter ( ) [inline]

Default constructor creates an invalid Map iterator.

Definition at line 347 of file HashMapIter.h.

template<class key, class val>
casa::HashMapIter< key, val >::~HashMapIter ( )

dtor


Member Function Documentation

template<class key, class val>
void casa::HashMapIter< key, val >::clear ( ) [inline]
template<class key, class val>
HashMap<key,val>& casa::HashMapIter< key, val >::container ( ) [inline]

Returns the container on which this iterator is operating.

Definition at line 370 of file HashMapIter.h.

References casa::ConstHashMapIter< key, val >::Container, casa::ConstHashMapIter< key, val >::isValid(), and casa::throw_invalid_hashmapiter_error().

template<class key, class val>
const HashMap<key,val>& casa::HashMapIter< key, val >::container ( ) const [inline]

Returns the container on which this iterator is operating.

Reimplemented from casa::ConstHashMapIter< key, val >.

Definition at line 375 of file HashMapIter.h.

References casa::ConstHashMapIter< key, val >::Container, casa::ConstHashMapIter< key, val >::isValid(), and casa::throw_invalid_hashmapiter_error().

template<class key, class val>
const val& casa::HashMapIter< key, val >::defaultVal ( ) const [inline]

This returns the default value for the map that this iterator is tracking.

With a non-const iterator the default value can be changed.

Reimplemented from casa::ConstHashMapIter< key, val >.

Definition at line 290 of file HashMapIter.h.

template<class key, class val>
val& casa::HashMapIter< key, val >::defaultVal ( ) [inline]
template<class key, class val>
val& casa::HashMapIter< key, val >::define ( const key &  k,
const val &  v 
) [inline]

These functions allow for the definition and removal of key/value relations.

The "define(key &, value &)" function defines a key/value relation, and "remove(key &)" function removes a relation if it has been previously defined.

Definition at line 272 of file HashMapIter.h.

References casa::ConstHashMapIter< key, val >::Container, casa::ConstHashMapIter< key, val >::isValid(), and casa::throw_invalid_hashmapiter_error().

template<class key, class val>
val& casa::HashMapIter< key, val >::getVal ( )

Get the key or value for the current position in the Map.

template<class key, class val>
virtual const val& casa::HashMapIter< key, val >::getVal ( ) const [virtual]
template<class key, class val>
const val& casa::HashMapIter< key, val >::operator() ( const key &  ky) const [inline]

Allows mapping functions to be performed with the map on which this iterator operates.

If this iterator is invalid, then an exception will be thrown. With a non-const operator, the value can be changed.

Reimplemented from casa::ConstHashMapIter< key, val >.

Definition at line 317 of file HashMapIter.h.

template<class key, class val>
val& casa::HashMapIter< key, val >::operator() ( const key &  ky) [inline]
template<class key, class val>
virtual HashMapIter<key,val>& casa::HashMapIter< key, val >::operator= ( HashMap< key, val > &  other) [virtual]

This assignment operator allows the Map which this MapIter tracks to be changed.

After a call to this operator, the MapIter will track the Map parameter.

template<class key, class val>
virtual HashMapIter<key,val>& casa::HashMapIter< key, val >::operator= ( const HashMapIter< key, val > &  other) [virtual]

This assignment operator allows the Map which this MapIter tracks to be changed.

After a call to this operator, this MapIter will track the Map which the MapIter parameter tracks, i.e. it will contain a reference to this new Map.

template<class key, class val>
ConstHashMapIter<key,val>& casa::HashMapIter< key, val >::operator= ( const HashMap< key, val > &  other) [inline, protected, virtual]

Assign one map iterator to a map (with reference semantics).

Reimplemented from casa::ConstHashMapIter< key, val >.

Definition at line 393 of file HashMapIter.h.

References casa::throw_hashmapiter_init_error().

template<class key, class val>
ConstHashMapIter<key,val>& casa::HashMapIter< key, val >::operator= ( const ConstHashMapIter< key, val > &  other) [inline, protected, virtual]

Assign one map iterator to another iterator (with reference semantics).

Reimplemented from casa::ConstHashMapIter< key, val >.

Definition at line 396 of file HashMapIter.h.

References casa::throw_hashmapiter_init_error().

template<class key, class val>
void casa::HashMapIter< key, val >::remove ( const key &  k) [inline]

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