9 #ifndef anna_core_util_SortedVector_hpp 10 #define anna_core_util_SortedVector_hpp 30 template <
typename T,
typename SortBy,
typename TKey =
int >
class SortedVector :
public std::map <TKey, T*> {
66 TKey key(SortBy::value(t));
67 return find(key) != NULL;
80 TKey key(SortBy::value(t));
82 std::pair <iterator, bool> result = container::insert(v);
97 TKey key(SortBy::value(t));
98 iterator ii = container::find(key);
100 if(ii != container::end()) {
101 container::erase(ii);
115 iterator ii = container::find(key);
116 return (ii == container::end()) ? NULL : ii->second;
124 const T*
find(
const TKey key)
const {
132 static T*
data(iterator ii) {
return ii->second; }
138 static const T*
data(const_iterator ii) {
return ii->second; }
container::iterator iterator
Definition: SortedVector.hpp:33
container::value_type value_type
Definition: SortedVector.hpp:35
const T * find(const TKey key) const
Definition: SortedVector.hpp:124
std::map< TKey, T * > container
Definition: SortedVector.hpp:32
static T * data(iterator ii)
Definition: SortedVector.hpp:132
SortedVector()
Definition: SortedVector.hpp:40
bool contains(const T *t) const
Definition: SortedVector.hpp:61
Definition: SortedVector.hpp:30
bool erase(T *t) noexcept(false)
Definition: SortedVector.hpp:91
static const T * data(const_iterator ii)
Definition: SortedVector.hpp:138
SortedVector(const SortedVector &other)
Definition: SortedVector.hpp:46
virtual ~SortedVector()
Definition: SortedVector.hpp:52
container::const_iterator const_iterator
Definition: SortedVector.hpp:34
bool add(T *t) noexcept(false)
Definition: SortedVector.hpp:75
T * find(const TKey key)
Definition: SortedVector.hpp:113