mirror of https://github.com/PrimeDecomp/prime.git
46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#ifndef _RSTL_SET
|
|
#define _RSTL_SET
|
|
|
|
#include "types.h"
|
|
|
|
#include "rstl/pair.hpp"
|
|
#include "rstl/red_black_tree.hpp"
|
|
#include "rstl/rmemory_allocator.hpp"
|
|
|
|
namespace rstl {
|
|
template < typename T, typename Cmp = less< T >, typename Alloc = rmemory_allocator >
|
|
class set {
|
|
public:
|
|
typedef T value_type;
|
|
|
|
private:
|
|
typedef red_black_tree< T, value_type, 0, identity< T >, Cmp, Alloc > rep_type;
|
|
|
|
public:
|
|
typedef typename rep_type::iterator iterator;
|
|
typedef typename rep_type::const_iterator const_iterator;
|
|
|
|
iterator insert(const value_type& item) { return inner.insert(item); }
|
|
|
|
const_iterator begin() const { return inner.begin(); }
|
|
const_iterator end() const { return inner.end(); }
|
|
iterator begin() { return inner.begin(); }
|
|
iterator end() { return inner.end(); }
|
|
|
|
iterator find(const T& key) { return inner.find(key); }
|
|
const_iterator find(const T& key) const { return inner.find(key); }
|
|
|
|
void erase(iterator it) { inner.erase(it); }
|
|
int size() const { return inner.size(); }
|
|
|
|
private:
|
|
rep_type inner;
|
|
};
|
|
|
|
typedef set< char, char > unk_set;
|
|
CHECK_SIZEOF(unk_set, 0x14)
|
|
|
|
}
|
|
|
|
#endif // _RSTL_SET
|