STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
unordered_set.h File Reference

Go to the source code of this file.

Functions

namespace std _GLIBCXX_VISIBILITY (default)
 

Detailed Description

This is an internal header file, included by other library headers. Do not attempt to use it directly. {tr1/unordered_set}

Function Documentation

namespace std _GLIBCXX_VISIBILITY ( default  )

A standard container composed of unique keys (containing at most one of each key value) in which the elements' keys are the elements themselves.

Meets the requirements of a container, and unordered associative container

Parameters
ValueType of key objects.
HashHashing function object type, defaults to hash<Value>.
PredPredicate function object type, defaults to equal_to<Value>.
AllocAllocator type, defaults to allocator<Key>.

A standard container composed of equivalent keys (possibly containing multiple of each key value) in which the elements' keys are the elements themselves.

Meets the requirements of a container, and unordered associative container

Parameters
ValueType of key objects.
HashHashing function object type, defaults to hash<Value>.
PredPredicate function object type, defaults to equal_to<Value>.
AllocAllocator type, defaults to allocator<Key>.
31 {
32 namespace tr1
33 {
34 _GLIBCXX_BEGIN_NAMESPACE_VERSION
35 
36  // NB: When we get typedef templates these class definitions
37  // will be unnecessary.
38  template<class _Value,
39  class _Hash = hash<_Value>,
40  class _Pred = std::equal_to<_Value>,
41  class _Alloc = std::allocator<_Value>,
42  bool __cache_hash_code = false>
43  class __unordered_set
44  : public _Hashtable<_Value, _Value, _Alloc,
45  std::_Identity<_Value>, _Pred,
46  _Hash, __detail::_Mod_range_hashing,
47  __detail::_Default_ranged_hash,
48  __detail::_Prime_rehash_policy,
49  __cache_hash_code, true, true>
50  {
51  typedef _Hashtable<_Value, _Value, _Alloc,
52  std::_Identity<_Value>, _Pred,
53  _Hash, __detail::_Mod_range_hashing,
54  __detail::_Default_ranged_hash,
55  __detail::_Prime_rehash_policy,
56  __cache_hash_code, true, true>
57  _Base;
58 
59  public:
60  typedef typename _Base::size_type size_type;
61  typedef typename _Base::hasher hasher;
62  typedef typename _Base::key_equal key_equal;
63  typedef typename _Base::allocator_type allocator_type;
64 
65  explicit
66  __unordered_set(size_type __n = 10,
67  const hasher& __hf = hasher(),
68  const key_equal& __eql = key_equal(),
69  const allocator_type& __a = allocator_type())
70  : _Base(__n, __hf, __detail::_Mod_range_hashing(),
71  __detail::_Default_ranged_hash(), __eql,
72  std::_Identity<_Value>(), __a)
73  { }
74 
75  template<typename _InputIterator>
76  __unordered_set(_InputIterator __f, _InputIterator __l,
77  size_type __n = 10,
78  const hasher& __hf = hasher(),
79  const key_equal& __eql = key_equal(),
80  const allocator_type& __a = allocator_type())
81  : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(),
82  __detail::_Default_ranged_hash(), __eql,
83  std::_Identity<_Value>(), __a)
84  { }
85  };
86 
87  template<class _Value,
88  class _Hash = hash<_Value>,
89  class _Pred = std::equal_to<_Value>,
90  class _Alloc = std::allocator<_Value>,
91  bool __cache_hash_code = false>
92  class __unordered_multiset
93  : public _Hashtable<_Value, _Value, _Alloc,
94  std::_Identity<_Value>, _Pred,
95  _Hash, __detail::_Mod_range_hashing,
96  __detail::_Default_ranged_hash,
97  __detail::_Prime_rehash_policy,
98  __cache_hash_code, true, false>
99  {
100  typedef _Hashtable<_Value, _Value, _Alloc,
101  std::_Identity<_Value>, _Pred,
102  _Hash, __detail::_Mod_range_hashing,
103  __detail::_Default_ranged_hash,
104  __detail::_Prime_rehash_policy,
105  __cache_hash_code, true, false>
106  _Base;
107 
108  public:
109  typedef typename _Base::size_type size_type;
110  typedef typename _Base::hasher hasher;
111  typedef typename _Base::key_equal key_equal;
112  typedef typename _Base::allocator_type allocator_type;
113 
114  explicit
115  __unordered_multiset(size_type __n = 10,
116  const hasher& __hf = hasher(),
117  const key_equal& __eql = key_equal(),
118  const allocator_type& __a = allocator_type())
119  : _Base(__n, __hf, __detail::_Mod_range_hashing(),
120  __detail::_Default_ranged_hash(), __eql,
121  std::_Identity<_Value>(), __a)
122  { }
123 
124 
125  template<typename _InputIterator>
126  __unordered_multiset(_InputIterator __f, _InputIterator __l,
127  typename _Base::size_type __n = 0,
128  const hasher& __hf = hasher(),
129  const key_equal& __eql = key_equal(),
130  const allocator_type& __a = allocator_type())
131  : _Base(__f, __l, __n, __hf, __detail::_Mod_range_hashing(),
132  __detail::_Default_ranged_hash(), __eql,
133  std::_Identity<_Value>(), __a)
134  { }
135  };
136 
137  template<class _Value, class _Hash, class _Pred, class _Alloc,
138  bool __cache_hash_code>
139  inline void
140  swap(__unordered_set<_Value, _Hash, _Pred, _Alloc, __cache_hash_code>& __x,
141  __unordered_set<_Value, _Hash, _Pred, _Alloc, __cache_hash_code>& __y)
142  { __x.swap(__y); }
143 
144  template<class _Value, class _Hash, class _Pred, class _Alloc,
145  bool __cache_hash_code>
146  inline void
147  swap(__unordered_multiset<_Value, _Hash, _Pred,
148  _Alloc, __cache_hash_code>& __x,
149  __unordered_multiset<_Value, _Hash, _Pred,
150  _Alloc, __cache_hash_code>& __y)
151  { __x.swap(__y); }
152 
153 
169  template<class _Value,
170  class _Hash = hash<_Value>,
171  class _Pred = std::equal_to<_Value>,
172  class _Alloc = std::allocator<_Value> >
173  class unordered_set
174  : public __unordered_set<_Value, _Hash, _Pred, _Alloc>
175  {
176  typedef __unordered_set<_Value, _Hash, _Pred, _Alloc> _Base;
177 
178  public:
179  typedef typename _Base::value_type value_type;
180  typedef typename _Base::size_type size_type;
181  typedef typename _Base::hasher hasher;
182  typedef typename _Base::key_equal key_equal;
183  typedef typename _Base::allocator_type allocator_type;
184 
185  explicit
186  unordered_set(size_type __n = 10,
187  const hasher& __hf = hasher(),
188  const key_equal& __eql = key_equal(),
189  const allocator_type& __a = allocator_type())
190  : _Base(__n, __hf, __eql, __a)
191  { }
192 
193  template<typename _InputIterator>
194  unordered_set(_InputIterator __f, _InputIterator __l,
195  size_type __n = 10,
196  const hasher& __hf = hasher(),
197  const key_equal& __eql = key_equal(),
198  const allocator_type& __a = allocator_type())
199  : _Base(__f, __l, __n, __hf, __eql, __a)
200  { }
201  };
202 
218  template<class _Value,
219  class _Hash = hash<_Value>,
220  class _Pred = std::equal_to<_Value>,
221  class _Alloc = std::allocator<_Value> >
222  class unordered_multiset
223  : public __unordered_multiset<_Value, _Hash, _Pred, _Alloc>
224  {
225  typedef __unordered_multiset<_Value, _Hash, _Pred, _Alloc> _Base;
226 
227  public:
228  typedef typename _Base::value_type value_type;
229  typedef typename _Base::size_type size_type;
230  typedef typename _Base::hasher hasher;
231  typedef typename _Base::key_equal key_equal;
232  typedef typename _Base::allocator_type allocator_type;
233 
234  explicit
235  unordered_multiset(size_type __n = 10,
236  const hasher& __hf = hasher(),
237  const key_equal& __eql = key_equal(),
238  const allocator_type& __a = allocator_type())
239  : _Base(__n, __hf, __eql, __a)
240  { }
241 
242 
243  template<typename _InputIterator>
244  unordered_multiset(_InputIterator __f, _InputIterator __l,
245  typename _Base::size_type __n = 0,
246  const hasher& __hf = hasher(),
247  const key_equal& __eql = key_equal(),
248  const allocator_type& __a = allocator_type())
249  : _Base(__f, __l, __n, __hf, __eql, __a)
250  { }
251  };
252 
253  template<class _Value, class _Hash, class _Pred, class _Alloc>
254  inline void
255  swap(unordered_set<_Value, _Hash, _Pred, _Alloc>& __x,
256  unordered_set<_Value, _Hash, _Pred, _Alloc>& __y)
257  { __x.swap(__y); }
258 
259  template<class _Value, class _Hash, class _Pred, class _Alloc>
260  inline void
261  swap(unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __x,
262  unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __y)
263  { __x.swap(__y); }
264 
265 _GLIBCXX_END_NAMESPACE_VERSION
266 }
267 }
void swap(exception_ptr &__lhs, exception_ptr &__rhs)
Definition: exception_ptr.h:160