22 #ifndef ULTIMA_STD_CONTAINERS_H 23 #define ULTIMA_STD_CONTAINERS_H 25 #include "common/algorithm.h" 26 #include "common/array.h" 27 #include "common/hashmap.h" 28 #include "common/hash-str.h" 29 #include "common/list.h" 30 #include "common/queue.h" 31 #include "common/stack.h" 32 #include "common/util.h" 48 T &operator*() {
return (*_owner)[_index]; }
56 return _owner == rhs._owner && _index == rhs._index;
59 return !operator==(rhs);
73 const T operator*()
const {
74 return (*_owner)[_index];
83 return _owner == rhs._owner && _index == rhs._index;
86 return !operator==(rhs);
111 bool operator()(
const T &a,
const T &b)
const {
117 Comparitor _comparitor;
123 iterator
end() {
return _items.
end(); }
124 const_iterator
begin()
const {
return _items.
begin(); }
125 const_iterator
end()
const {
return _items.
end(); }
145 void insert(iterator first, iterator last) {
146 for (; first != last; ++first)
162 iterator it =
begin();
163 for (; it !=
end() && *it != item; ++it) {}
166 const_iterator
find(
const T item)
const {
167 const_iterator it =
begin();
168 for (; it !=
end() && *it != item; ++it) {
184 T operator*()
const {
return *_it; }
208 template <
class _Ty,
class _Container,
class _Pr>
215 priority_queue(
const _Pr &_Pred,
const _Container &_Cont) : c(_Cont), comp(_Pred) {
216 make_heap(c.begin(), c.end(), comp);
219 template <
class _InIt>
220 priority_queue(_InIt _First, _InIt _Last,
const _Pr &_Pred,
const _Container &_Cont) : c(_Cont), comp(_Pred) {
221 c.insert(c.end(), _First, _Last);
222 make_heap(c.begin(), c.end(), comp);
225 template <
class _InIt>
226 priority_queue(_InIt _First, _InIt _Last) : c(_First, _Last), comp() {
227 make_heap(c.begin(), c.end(), comp);
230 template <
class _InIt>
231 priority_queue(_InIt _First, _InIt _Last,
const _Pr &_Pred) : c(_First, _Last), comp(_Pred) {
232 make_heap(c.begin(), c.end(), comp);
239 size_t size()
const {
243 typename _Container::const_reference top()
const {
247 void push(
const typename _Container::value_type &_Val) {
256 void swap(priority_queue &_Right) {
258 SWAP(comp, _Right.comp);
Definition: containers.h:109
Definition: containers.h:40
void clear()
Definition: containers.h:130
void clear()
Definition: array.h:323
iterator end()
Definition: array.h:382
iterator begin()
Definition: array.h:377
In find(In first, In last, const T &v)
Definition: algorithm.h:225
T * iterator
Definition: array.h:54
void SWAP(T &a, T &b)
Definition: util.h:84
void insert(T val)
Definition: containers.h:137
Definition: detection.h:27
bool empty() const
Definition: array.h:354
void push_back(const T &element)
Definition: array.h:183
iterator find(const T item)
Definition: containers.h:161
const T * const_iterator
Definition: array.h:55
Definition: containers.h:209
void insert(iterator first, iterator last)
Definition: containers.h:145
size_type size() const
Definition: array.h:318
Definition: containers.h:175
Definition: containers.h:177
Definition: list_intern.h:54
void sort(T first, T last, StrictWeakOrdering comp)
Definition: algorithm.h:349
Definition: containers.h:38
Definition: algorithm.h:37
void swap(set< T > &arr)
Definition: containers.h:154
Definition: containers.h:63