1 #ifndef __JTOOLS__JHASHMAP__
2 #define __JTOOLS__JHASHMAP__
21 namespace JPP {
using namespace JTOOLS; }
31 template<
class JEvaluator_t>
35 using JEvaluator_t::operator();
43 JEvaluator_t(evaluator)
53 template<
class JKey_t,
class JValue_t>
56 return JEvaluator_t::operator()(pair.first);
70 template<
class JKey_t,
class JValue_t,
class JEvaluator_t = JHashEvaluator>
72 public JHashCollection<std::pair<JKey_t, JValue_t>, JHashMapEvaluator<JEvaluator_t> >,
87 typedef typename container_type::iterator
iterator;
98 JHashMap(
const JEvaluator_t& evaluator = JEvaluator_t()) :
120 const int ival = this->
getValue(key);
122 if (!this->
router.has(ival)) {
126 return container_type::operator[](this->
router.get(ival)).second;
140 const int ival = this->
getValue(key);
142 if (this->
router.has(ival))
143 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.
JArgument< T >::argument_type argument_type
Template for generic class types.
Exception for accessing an index in a collection that is outside of its range.