1#ifndef __JTOOLS__JHASHMAP__
2#define __JTOOLS__JHASHMAP__
32 template<
class JEvaluator_t>
36 using JEvaluator_t::operator();
44 JEvaluator_t(evaluator)
54 template<
class JKey_t,
class JValue_t>
57 return JEvaluator_t::operator()(pair.first);
71 template<
class JKey_t,
class JValue_t,
class JEvaluator_t = JHashEvaluator>
73 public JHashCollection<std::pair<JKey_t, JValue_t>, JHashMapEvaluator<JEvaluator_t> >,
88 typedef typename container_type::iterator
iterator;
99 JHashMap(
const JEvaluator_t& evaluator = JEvaluator_t()) :
118 for (
iterator i = this->begin(); i != this->end(); ++i) {
134 for (const_iterator i = source.begin(); i != source.end(); ++i) {
135 (*this)[i->first] = value;
148 const int ival = this->
getValue(key);
150 if (!this->
router.has(ival)) {
154 return container_type::operator[](this->
router.get(ival)).second;
168 const int ival = this->
getValue(key);
170 if (this->
router.has(ival))
171 return container_type::operator[](this->
router.get(ival)).second;
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
General purpose class for a hash collection of unique elements.
Exception for accessing an index in a collection that is outside of its range.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Template for generic class types.
JArgument< T >::argument_type argument_type
Auxiliary data structure for handling std::ostream.