123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- ++++++++++++++++++++++++++++++++++
- |Boost| Pointer Container Library
- ++++++++++++++++++++++++++++++++++
-
- .. |Boost| image:: boost.png
- Class ``associative_ptr_container``
- -------------------------------------
- This section describes all the common operations for all associative
- pointer containers (in addition to ``reversible_ptr_container``).
- **Hierarchy:**
- - `reversible_ptr_container <reversible_ptr_container.html>`_
- - ``associative_ptr_container``
-
- - `ptr_set_adapter <ptr_set_adapter.html>`_
- - `ptr_multiset_adapter <ptr_multiset_adapter.html>`_
- - `ptr_map_adapter <ptr_map_adapter.html>`_
- - `ptr_multi_map_adapter <ptr_multimap_adapter.html>`_
- - `ptr_set <ptr_set.html>`_
- - `ptr_multi_set <ptr_multiset.html>`_
- - `ptr_map <ptr_map.html>`_
- - `ptr_multimap <ptr_multimap.html>`_
- **See also:**
- - `iterator_range <http://www.boost.org/libs/range/doc/utility_class.html#iter_range>`_
- **Navigate:**
- - `home <ptr_container.html>`_
- - `reference <reference.html>`_
- **Synopsis:**
- .. parsed-literal::
- namespace boost
- {
- template
- <
- class Key,
- class CloneAllocator = heap_clone_allocator
- >
- class associative_ptr_container
- {
- public: // typedefs_
- typedef ... key_type;
- typedef ... key_compare;
- typedef ... value_compare;
-
- public: // `observers`_
- key_compare key_comp() const;
- value_compare value_comp() const;
-
- public: // `modifiers`_
- template< typename InputIterator >
- void insert( InputIterator first, InputIterator last );
- template< class InputRange >
- void insert( const InputRange& r );
- void erase( iterator position );
- size_type erase( const key_type& x );
- template< class Range >
- void erase( const Range& r );
- void erase( iterator first, iterator last );
- public: // `algorithms`_
- iterator find( const key_type& x );
- const_iterator find( const key_type& x ) const;
- size_type count( const key_type& x ) const;
- iterator lower_bound( const key_type& x );
- const_iterator lower_bound( const key_type& x ) const;
- iterator upper_bound( const key_type& x );
- const_iterator upper_bound( const key_type& x ) const;
- iterator_range<iterator> equal_range( const key_type& x );
- iterator_range<const_iterator> equal_range( const key_type& x ) const;
-
- }; // class 'associative_ptr_container'
-
- } // namespace 'boost'
-
- Semantics
- ---------
- .. _typedefs:
- Semantics: typedefs
- ^^^^^^^^^^^^^^^^^^^
- - ``typedef ... key_type;``
- - if we are dealing with a map, then simply the key type
- - if we are dealing with a set, then the *indirected* key type, that is,
- given ``ptr_set<T>``, ``key_type*`` will be ``T*``.
- - ``typedef ... key_compare;``
- - comparison object type that determines the order of elements in the container
- - ``typedef ... value_compare;``
- - comparison object type that determines the order of elements in the container
- - if we are dealing with a map, then this comparison simply forwards to the ``key_compare`` comparison operation
- .. _`observers`:
- Semantics: observers
- ^^^^^^^^^^^^^^^^^^^^
- - ``key_compare key_comp() const;``
- - ``value_compare value_comp() const;``
- - returns copies of objects used to determine the order of elements
- .. _`modifiers`:
- Semantics: modifiers
- ^^^^^^^^^^^^^^^^^^^^
- - ``template< typename InputIterator >
- void insert( InputIterator first, InputIterator last );``
- - Requirements: ``[first,last)`` is a valid range
- - Effects: Inserts a cloned range
- - Exception safety: Basic guarantee
- - ``template< class InputRange >
- void insert( const InputRange& r );``
- - Effects: ``insert( boost::begin(r), boost::end(r) );``
- - ``void erase( iterator position );``
- - Requirements: ``position`` is a valid iterator from the container
- - Effects: Removes the element defined by ``position``.
- - Throws: Nothing
- - ``size_type erase( const key_type& x );``
- - Effects: Removes all the elements in the container with a key equivalent to ``x`` and returns the number of erased elements.
- - Throws: Nothing
- - ``void erase( iterator first, iterator last );``
- - Requirements: ``[first,last)`` is a valid range
- - Effects: Removes the range of elements defined by ``[first,last)``.
- - Throws: Nothing
- - ``template< class Range > void erase( const Range& r );``
- - Effects: ``erase( boost::begin(r), boost::end(r) );``
- .. _`algorithms`:
- Semantics: algorithms
- ^^^^^^^^^^^^^^^^^^^^^
- - ``iterator find( const Key& x );``
- - ``const_iterator find( const Key& x ) const;``
- - Effects: Searches for the key and returns ``end()`` on failure.
- - Complexity: Logarithmic
- - ``size_type count( const Key& x ) const;``
- - Effects: Counts the elements with a key equivalent to ``x``
- - Complexity: Logarithmic
- - ``iterator lower_bound( const Key& x );``
- - ``const_iterator lower_bound( const Key& x ) const;``
- - Effects: Returns an iterator pointing to the first element with a key not less than ``x``
- - Complexity: Logarithmic
- - ``iterator upper_bound( const Key& x );``
- - ``const_iterator upper_bound( const Key& x ) const;``
- - Effects: Returns an iterator pointing to the first element with a key greater than ``x``
- - Complexity: Logarithmic
- - ``iterator_range<iterator> equal_range( const Key& x );``
- - ``iterator_range<const_iterator> equal_range( const Key& x ) const;``
- - Effects: ``return boost::make_iterator_range( lower_bound( x ), upper_bound( x ) );``
- - Complexity: Logarithmic
- ..
- - ``reference at( const key_type& key );``
- - ``const_reference at( const key_type& key ) const;``
-
- - Requirements: the key exists
-
- - Effects: returns the object with key ``key``
-
- - Throws: ``bad_ptr_container_operation`` if the key does not exist
-
- .. _`pointer container requirements`:
- .. 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__).
- __ http://www.boost.org/LICENSE_1_0.txt
|