> > If anyone interested I have more generic solution, that 
> includes both
> > fixed/pseudo-dynamic versions with the same interface and 
> policy template
> > parameter managing search algorithms (if/else based,slist 
> based linear
> > search,map based, array+lower_bound based). BTW it appears 
> that array in
> > many cases does outperform map as Matt Austern states.
> >
> 
> '... pseudo-dynamic ...' ?

it's dynamic cause in addition to fixed_sized interface it supports
add/remove pair operations.The reasons to use
dynamic mapping instead of map are:
1. Rare insertion frequent search - may be quicker
2. I got tired repeating the same logic: find, if iterator is invalid return
some invalid value. mappings automate this for me.
3. Fixed interface for all mappings.
 
> What's the syntax for declaring and using the table (or 
> whatever you may
> call it)?
> 
> // Johan

namespace mapping {
template<class Key, class Value, class ImplPolicy >
class fixed_sized;

// constructed by Key1,Value1,Key2,Value2 ... list plus "invalid value"

template<class Key, class Value, class ImplPolicy >
class dynamic; 

// constrcted by "invalid_value"

};

mapping::fixed_sized<const_string,int,array_impl_policy> test_mapping1( 
    "Key1", 1,
    "Key2", 2,
    "QWE", 3,
    0
);

mapping::dyanamic<const_string,int,map_impl_policy> test_mapping2( 
    "Key1", 1,
    "Key2", 2,
    "QWE", 3,
    0
);

mapping::dynamic<const_string,int,map_impl_policy > test_mapping3( 0 );
test_mapping3.add( "Key1", 1 );
test_mapping3.add( "Key2", 2 );
test_mapping3.add( "QWE" , 3 );

Usage:
test_mapping1["Key1"]
test_mapping2["Key2"]
test_mapping3["QWE"]

Gennadiy.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to