38#ifndef BLOCXX_SORTED_VECTOR_MAP_HPP_
39#define BLOCXX_SORTED_VECTOR_MAP_HPP_
40#include "blocxx/BLOCXX_config.h"
51template <
class Key,
class T,
class Compare>
54 typedef std::pair<Key, T>
Data;
70 bool operator()(
const typename Data::first_type&
k,
const typename Data::first_type&
rhs)
const
76 const typename Data::first_type&
k2)
const
84template<
class Key,
class T,
class Compare>
88template<
class Key,
class T,
class Compare>
92template <
class Key,
class T,
class Compare>
96template<
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);
198 template <
class InputIterator>
273 std::pair<const_iterator, const_iterator>
289template<
class Key,
class T,
class Compare>
293 return *
x.m_impl == *
y.m_impl;
295template<
class Key,
class T,
class Compare>
299 return *
x.m_impl < *
y.m_impl;
301template <
class Key,
class T,
class Compare>
COWReference A smart pointer that uses non-intrusive reference counting.
void swap(COWReference< T > &arg)
bool operator()(const Data &lhs, const typename Data::first_type &k) const
bool operator()(const Data &lhs, const Data &rhs) const
bool keyLess(const typename Data::first_type &k1, const typename Data::first_type &k2) const
bool operator()(const typename Data::first_type &k, const Data &rhs) const
bool operator()(const typename Data::first_type &k, const typename Data::first_type &rhs) const
const_iterator end() const
SortedVectorMap(InputIterator first, InputIterator last)
iterator insert(iterator, const value_type &x)
iterator erase(iterator first, iterator last)
const_iterator begin() const
const_reverse_iterator rend() const
std::pair< iterator, bool > insert(const value_type &x)
data_type & operator[](const key_type &k)
container_t::const_reverse_iterator const_reverse_iterator
container_t::reference reference
std::pair< const_iterator, const_iterator > equal_range(const key_type &x) const
void swap(SortedVectorMap< Key, T, Compare > &x)
size_type max_size() const
size_type count(const key_type &x) const
const_iterator upper_bound(const key_type &x) const
std::vector< Data > container_t
const_iterator find(const key_type &x) const
static bool equivalent(const key_type &x, const key_type &y)
const_iterator lower_bound(const key_type &x) const
size_type erase(const key_type &x)
container_t::const_reference const_reference
container_t::reverse_iterator reverse_iterator
const_reverse_iterator rbegin() const
friend bool operator==(const SortedVectorMap< Key, T, Compare > &x, const SortedVectorMap< Key, T, Compare > &y)
void insert(InputIterator first, InputIterator last)
std::pair< const key_type, data_type > value_type
container_t::difference_type difference_type
SortedVectorMap(container_t *toWrap)
container_t::pointer pointer
iterator find(const key_type &x)
container_t::const_iterator const_iterator
container_t::size_type size_type
container_t::iterator iterator
iterator erase(iterator position)
COWReference< container_t > m_impl
bool operator<(const Array< T > &x, const Array< T > &y)
bool operator==(const Array< T > &x, const Array< T > &y)
void swap(Array< T > &x, Array< T > &y)