--- deliantra/server/include/util.h 2006/09/04 17:16:19 1.4 +++ deliantra/server/include/util.h 2006/09/11 01:16:20 1.6 @@ -10,6 +10,7 @@ // makes dynamically allocated objects zero-initialised struct zero_initialised { + void *operator new (size_t s, void *); void *operator new (size_t s); void *operator new [] (size_t s); void operator delete (void *p, size_t s); @@ -21,7 +22,6 @@ std::size_t operator ()(const char *s) const { unsigned long hash = 0; - unsigned int i = 0; /* use the one-at-a-time hash function, which supposedly is * better than the djb2-like one used by perl5.005, but @@ -51,5 +51,26 @@ } }; +#include + +template +struct unordered_vector : std::vector +{ + typedef typename std::vector::iterator iterator; + + void erase (unsigned int pos) + { + if (pos < this->size () - 1) + (*this)[pos] = (*this)[this->size () - 1]; + + this->pop_back (); + } + + void erase (iterator i) + { + erase ((unsigned int )(i - this->begin ())); + } +}; + #endif