mapped_type&
operator[](const key_type& __k)
{
// concept requirements
__glibcxx_function_requires(_DefaultConstructibleConcept<mapped_type>)
iterator __i = lower_bound(__k);
// __i->first is greater than or equivalent to __k.
if (__i == end() || key_comp()(__k, (*__i).first))
__i = insert(__i, value_type(__k, mapped_type()));
return (*__i).second;
}
mapped_type() = first call to non-copy constructor.
value_type( __k, mapped_type() ) = first call to copy constructor, to make a std::pair<> out of key and value.
insert( ... ) = second call to copy constructor, to copy std::pair into the container.