The difference compared to ``std::map<Key,T*>`` is that constness
is propagated to the pointer (that is, to ``second``) in ``const_itertor``.
.._`modifiers`:
Semantics: modifiers
^^^^^^^^^^^^^^^^^^^^
-``std::pair<iterator,bool> insert( key_type& k, value_type x );``
- Requirements: ``x != 0``
- Effects: Takes ownership of ``x`` and insert it iff there is no equivalent of it already. The bool part of the return value indicates insertion and the iterator points to the element with key ``x``.
- Equivalent to (but without the ``const_cast``): ``return insert( const_cast<key_type&>(k), x.release() );``
..
-``std::pair<iterator,bool> insert( key_type& k, const_reference x );``
- Effects: ``return insert( allocate_clone( x ) );``
- Exception safety: Strong guarantee
.._`lookup`:
Semantics: lookup
^^^^^^^^^^^^^^^^^
-``T& operator[]( const key_type& key );``
- Effects: returns the object with key ``key`` if it exists; otherwise a new object is allocated and inserted and its reference returned.
- Exception-safety: Strong guarantee
-``T& at( const key_type& key );``
-``const T& at( const key_type& jey ) const;``
- Requirement: the key exists
- Throws: ``bad_ptr_container_operation`` if the key does not exist
.._`pointer container requirements`:
Semantics: pointer container requirements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-``bool transfer( iterator object, ptr_map_adapter& from );``
- Requirements: ``not from.empty()``
- Effects: Inserts the object defined by ``object`` into the container and remove it from ``from``
iff no equivalent object exists.
- Returns: whether the object was transfered
- Exception safety: Strong guarantee
-``size_type transfer( iterator first, iterator last, ptr__set_adapter& from );``
- Requirements: ``not from.empty()``
- Effects: Inserts the objects defined by the range ``[first,last)`` into the container and remove it from ``from``.
An object is only transferred if no equivalent object exists.
- Returns: the number of transfered objects
- Exception safety: Basic guarantee
-``template< class Range > void transfer( const Range& r, ptr_map_adapter& from );``
- Effects: ``return transfer( boost::begin(r), boost::end(r), from );``
-``size_type transfer( ptr_set_adapter& from );``
- Effects: ``return transfer( from.begin(), from.end(), from );``.
..raw:: html
<hr>
:Copyright:Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__).