Expand Up
@@ -1302,12 +1302,44 @@ class flat_map
BOOST_CONTAINER_FORCEINLINE const_iterator find (const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.find (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: An iterator pointing to an element with the key
// ! equivalent to x, or end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE iterator find (const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.find (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: A const_iterator pointing to an element with the key
// ! equivalent to x, or end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE const_iterator find (const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.find (x)); }
// ! <b>Returns</b>: The number of elements with key equivalent to x.
// !
// ! <b>Complexity</b>: log(size())+count(k)
BOOST_CONTAINER_FORCEINLINE size_type count (const key_type& x) const
{ return static_cast <size_type>(m_flat_tree.find (x) != m_flat_tree.end ()); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: The number of elements with key equivalent to x.
// !
// ! <b>Complexity</b>: log(size())+count(k)
template <class K >
BOOST_CONTAINER_FORCEINLINE size_type count (const K& x) const
{ return static_cast <size_type>(m_flat_tree.find (x) != m_flat_tree.end ()); }
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than k, or a.end() if such an element is not found.
// !
Expand All
@@ -1322,6 +1354,28 @@ class flat_map
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound (const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than k, or a.end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE iterator lower_bound (const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: A const iterator pointing to the first element with key not
// ! less than k, or a.end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound (const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound (x)); }
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than x, or end() if such an element is not found.
// !
Expand All
@@ -1336,6 +1390,28 @@ class flat_map
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound (const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than x, or end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE iterator upper_bound (const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.upper_bound (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: A const iterator pointing to the first element with key not
// ! less than x, or end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound (const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound (x)); }
// ! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
// !
// ! <b>Complexity</b>: Logarithmic.
Expand All
@@ -1348,6 +1424,26 @@ class flat_map
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range (const key_type& x) const
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.lower_bound_range (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range (const K& x)
{ return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.lower_bound_range (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range (const K& x) const
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.lower_bound_range (x)); }
// ! <b>Effects</b>: Extracts the internal sequence container.
// !
// ! <b>Complexity</b>: Same as the move constructor of sequence_type, usually constant.
Expand Down
Expand Up
@@ -2443,25 +2539,79 @@ class flat_multimap
BOOST_CONTAINER_FORCEINLINE const_iterator find (const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.find (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: An iterator pointing to an element with the key
// ! equivalent to x, or end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE iterator find (const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.find (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: An const_iterator pointing to an element with the key
// ! equivalent to x, or end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic.
template <class K >
BOOST_CONTAINER_FORCEINLINE const_iterator find (const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.find (x)); }
// ! <b>Returns</b>: The number of elements with key equivalent to x.
// !
// ! <b>Complexity</b>: log(size())+count(k)
BOOST_CONTAINER_FORCEINLINE size_type count (const key_type& x) const
{ return m_flat_tree.count (x); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: The number of elements with key equivalent to x.
// !
// ! <b>Complexity</b>: log(size())+count(k)
template <class K >
BOOST_CONTAINER_FORCEINLINE size_type count (const K& x) const
{ return m_flat_tree.count (x); }
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than k, or a.end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic
BOOST_CONTAINER_FORCEINLINE iterator lower_bound (const key_type& x)
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound (x)); }
// ! <b>Returns</b>: A const iterator pointing to the first element with key
// ! not less than k, or a.end() if such an element is not found.
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than k, or a.end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound (const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound (x)); }
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than k, or a.end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic
template <class K >
BOOST_CONTAINER_FORCEINLINE iterator lower_bound (const K& x)
{ return dtl::force_copy<iterator>(m_flat_tree.lower_bound (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than k, or a.end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic
template <class K >
BOOST_CONTAINER_FORCEINLINE const_iterator lower_bound (const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.lower_bound (x)); }
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than x, or end() if such an element is not found.
Expand All
@@ -2477,6 +2627,28 @@ class flat_multimap
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound (const key_type& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: An iterator pointing to the first element with key not less
// ! than x, or end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic
template <class K >
BOOST_CONTAINER_FORCEINLINE iterator upper_bound (const K& x)
{return dtl::force_copy<iterator>(m_flat_tree.upper_bound (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Returns</b>: A const iterator pointing to the first element with key
// ! not less than x, or end() if such an element is not found.
// !
// ! <b>Complexity</b>: Logarithmic
template <class K >
BOOST_CONTAINER_FORCEINLINE const_iterator upper_bound (const K& x) const
{ return dtl::force_copy<const_iterator>(m_flat_tree.upper_bound (x)); }
// ! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
// !
// ! <b>Complexity</b>: Logarithmic
Expand All
@@ -2489,6 +2661,26 @@ class flat_multimap
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range (const key_type& x) const
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
// !
// ! <b>Complexity</b>: Logarithmic
template <class K >
BOOST_CONTAINER_FORCEINLINE std::pair<iterator,iterator> equal_range (const K& x)
{ return dtl::force_copy<std::pair<iterator,iterator> >(m_flat_tree.equal_range (x)); }
// ! <b>Requires</b>: This overload is available only if
// ! key_compare::is_transparent exists.
// !
// ! <b>Effects</b>: Equivalent to std::make_pair(this->lower_bound(k), this->upper_bound(k)).
// !
// ! <b>Complexity</b>: Logarithmic
template <class K >
BOOST_CONTAINER_FORCEINLINE std::pair<const_iterator, const_iterator> equal_range (const K& x) const
{ return dtl::force_copy<std::pair<const_iterator,const_iterator> >(m_flat_tree.equal_range (x)); }
// ! <b>Effects</b>: Extracts the internal sequence container.
// !
// ! <b>Complexity</b>: Same as the move constructor of sequence_type, usually constant.
Expand Down