anaglym/IDSet.h
Josh Holtrop 4757223088 added iterators to IDSet; renamed remove() to erase()
git-svn-id: svn://anubis/anaglym/trunk@264 99a6e188-d820-4881-8870-2d33a10e2619
2010-02-24 20:56:29 +00:00

39 lines
818 B
C++

#ifndef IDSET_H
#define IDSET_H
#include <map>
template <class T>
class IDSet
{
public:
IDSet() { m_next_index = 1; }
int add(const T & o)
{
int id = m_next_index++;
m_data[id] = o;
return id;
}
void erase(int id)
{
m_data.erase(id);
}
T & operator[](int id)
{
return m_data[id];
}
bool contains(int id)
{
return m_data.find(id) != m_data.end();
}
bool empty() { return m_data.empty(); }
typename std::map<int, T>::iterator begin() { return m_data.begin(); }
typename std::map<int, T>::iterator end() { return m_data.end(); }
protected:
std::map<int, T> m_data;
int m_next_index;
};
#endif