38 #ifndef BLOCXX_SORTED_VECTOR_MAP_HPP_
39 #define BLOCXX_SORTED_VECTOR_MAP_HPP_
40 #include "blocxx/BLOCXX_config.h"
48 namespace BLOCXX_NAMESPACE
51 template <
class Key,
class T,
class Compare>
54 typedef std::pair<Key, T>
Data;
58 return keyLess(lhs.first, rhs.first);
70 bool operator()(
const typename Data::first_type& k,
const typename Data::first_type& rhs)
const
75 bool keyLess(
const typename Data::first_type& k1,
76 const typename Data::first_type& k2)
const
78 return Compare()(k1, k2);
84 template<
class Key,
class T,
class Compare>
88 template<
class Key,
class T,
class Compare>
89 inline bool operator<(const SortedVectorMap<Key, T, Compare>& x,
92 template <
class Key,
class T,
class Compare>
96 template<
class Key,
class T,
class Compare>
99 typedef std::pair<Key, T>
Data;
108 typedef typename container_t::pointer
pointer;
123 template <
class InputIterator>
165 return m_impl->max_size();
185 return std::pair<iterator, bool>(
i,
false);
189 return std::pair<iterator, bool>(
m_impl->insert(i, x),
true);
196 return m_impl->insert(i, x);
198 template <
class InputIterator>
199 void insert(InputIterator first, InputIterator last)
207 return m_impl->erase(position);
224 return m_impl->erase(first, last);
256 if (std::binary_search(
m_impl->begin(),
m_impl->end(), x, Compare()))
267 return std::lower_bound(
m_impl->begin(),
m_impl->end(), x, Compare());
271 return std::upper_bound(
m_impl->begin(),
m_impl->end(), x, Compare());
273 std::pair<const_iterator, const_iterator>
276 return std::equal_range(
m_impl->begin(),
m_impl->end(), x, Compare());
286 return (!Compare()(x, y) && !Compare()(y, x));
289 template<
class Key,
class T,
class Compare>
295 template<
class Key,
class T,
class Compare>
296 inline bool operator<(const SortedVectorMap<Key, T, Compare>& x,
299 return *x.
m_impl < *y.m_impl;
301 template <
class Key,
class T,
class Compare>