mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-02-06 22:00:54 +00:00
- updaterevision for automated revision string generation - re2c as a prerequisite to use sc_man in the future - zipdir to automatically generate an engine resource file.
46 lines
704 B
C++
46 lines
704 B
C++
#ifndef _RE2C_UTIL_UNIQ_VECTOR_
|
|
#define _RE2C_UTIL_UNIQ_VECTOR_
|
|
|
|
#include <vector>
|
|
|
|
namespace re2c
|
|
{
|
|
|
|
// wrapper over std::vector
|
|
// O(n) lookup
|
|
// O(n) insertion
|
|
template <typename value_t>
|
|
class uniq_vector_t
|
|
{
|
|
typedef std::vector<value_t> elems_t;
|
|
elems_t elems;
|
|
public:
|
|
uniq_vector_t ()
|
|
: elems ()
|
|
{}
|
|
size_t size () const
|
|
{
|
|
return elems.size ();
|
|
}
|
|
const value_t & operator [] (size_t i) const
|
|
{
|
|
return elems[i];
|
|
}
|
|
size_t find_or_add (const value_t & v)
|
|
{
|
|
const size_t size = elems.size ();
|
|
for (size_t i = 0; i < size; ++i)
|
|
{
|
|
if (elems[i] == v)
|
|
{
|
|
return i;
|
|
}
|
|
}
|
|
elems.push_back (v);
|
|
return size;
|
|
}
|
|
};
|
|
|
|
} // namespace re2c
|
|
|
|
#endif // _RE2C_UTIL_UNIQ_VECTOR_
|