Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ Moderated > Re: Fastest way...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 7 of 9 Topic 9561 of 9830
Post > Topic >>

Re: Fastest way to clone a hash_map

by Carl Barron <cbarron413@[EMAIL PROTECTED] > Apr 30, 2008 at 04:13 AM

In article
<beb9809a-53ab-49e7-b1b2-5867b39de49b@[EMAIL PROTECTED]
>,
devdude <rottyguy70@[EMAIL PROTECTED]
> wrote:

> Hi,
> 
> I have the need to take a snapshot of a hash_map during execution
> (actually transform it to a vector).  This map is a shared resource
> and therefore must be locked prior to any read/write operations thus I
> need to minimize the amount of time the map resource is locked.
> 
> The map is defined as type <string, boost::shared_ptr<myobject>>.  My
> algorithm is as such:
> 
> void SnapShotToVector( vector< pair< string,
> boost::shared_ptr<myobject> >& vec )
> {
> 
>     lockResource(this->map);
>     vec.resize( map.size() );
>     copy(this->map.begin(), this->map.end(),list.begin());
>     unlockResource(this->map);
> }
> 
      I will not consider mult-threas but the code above may
not be the best to accomplish the results.
    vec.clear();
    vec.reserve(map.size());
    copy(map.begin(),map.end(),back_inserter(vec));
is likely to be faster,
    further has_map::value_type most likely is a pair<
const string,shared_ptr<myobject> > not pair<
string,shared_ptr<myobject> > so storing hash_map::value_type
in vec is likely to avoid converting const string to string.
    thats 3M default ctors of hash_map::value_type not called and
3M conversions of pair<U1,U2> to pair<T1,T2> not performed.

-- 
      [ See http://www.gotw.ca/resources/clcm.htm
for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]
 




 9 Posts in Topic:
Fastest way to clone a hash_map
devdude <rottyguy70@[E  2008-04-29 12:09:16 
Re: Fastest way to clone a hash_map
=?ISO-8859-1?Q?Daniel_Kr=  2008-04-29 17:42:35 
Re: Fastest way to clone a hash_map
"Stephen Howe"   2008-04-29 17:43:43 
Re: Fastest way to clone a hash_map
bachlipp@[EMAIL PROTECTED  2008-04-29 17:42:01 
Re: Fastest way to clone a hash_map
Tony Delroy <tony_in_d  2008-04-30 03:52:18 
Re: Fastest way to clone a hash_map
devdude <rottyguy70@[E  2008-04-30 04:13:33 
Re: Fastest way to clone a hash_map
Carl Barron <cbarron41  2008-04-30 04:13:32 
Re: Fastest way to clone a hash_map
Mathias Gaunard <loufo  2008-04-30 04:13:32 
Re: Fastest way to clone a hash_map
"Roman.Perepelitsa@[  2008-04-30 10:27:21 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 15:40:15 CDT 2008.