1 2#ifndef _SIM_SET 3#define _SIM_SET 4 5#pragma clang system_header 6#include "sim_initializer_list" 7 8namespace std { 9 10template< class T = void > 11struct less; 12 13template< class T > 14struct allocator; 15 16template< class Key > 17struct hash; 18 19template< 20 class Key, 21 class Compare = std::less<Key>, 22 class Alloc = std::allocator<Key> 23> class set { 24 public: 25 set(initializer_list<Key> __list) {} 26 27 class iterator { 28 public: 29 iterator(Key *key): ptr(key) {} 30 iterator& operator++() { ++ptr; return *this; } 31 bool operator!=(const iterator &other) const { return ptr != other.ptr; } 32 const Key &operator*() const { return *ptr; } 33 private: 34 Key *ptr; 35 }; 36 37 Key *val; 38 iterator begin() const { return iterator(val); } 39 iterator end() const { return iterator(val + 1); } 40}; 41 42} // namespace std 43 44#endif // _SIM_SET 45