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