STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
assoc_container.hpp
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 // Copyright (C) 2005-2013 Free Software Foundation, Inc.
4 //
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the terms
7 // of the GNU General Public License as published by the Free Software
8 // Foundation; either version 3, or (at your option) any later
9 // version.
10 
11 // This library is distributed in the hope that it will be useful, but
12 // WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // General Public License for more details.
15 
16 // Under Section 7 of GPL version 3, you are granted additional
17 // permissions described in the GCC Runtime Library Exception, version
18 // 3.1, as published by the Free Software Foundation.
19 
20 // You should have received a copy of the GNU General Public License and
21 // a copy of the GCC Runtime Library Exception along with this program;
22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 // <http://www.gnu.org/licenses/>.
24 
25 // Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
26 
27 // Permission to use, copy, modify, sell, and distribute this software
28 // is hereby granted without fee, provided that the above copyright
29 // notice appears in all copies, and that both that copyright notice
30 // and this permission notice appear in supporting documentation. None
31 // of the above authors, nor IBM Haifa Research Laboratories, make any
32 // representation about the suitability of this software for any
33 // purpose. It is provided "as is" without express or implied
34 // warranty.
35 
41 #ifndef PB_DS_ASSOC_CNTNR_HPP
42 #define PB_DS_ASSOC_CNTNR_HPP
43 
44 #include <bits/c++config.h>
45 #include <ext/typelist.h>
50 
51 namespace __gnu_pbds
52 {
64 #define PB_DS_HASH_BASE \
65  detail::container_base_dispatch<Key, Mapped, _Alloc, Tag, \
66  typename __gnu_cxx::typelist::append< \
67  typename __gnu_cxx::typelist::create4<Hash_Fn, Eq_Fn, Resize_Policy, \
68  detail::integral_constant<int, Store_Hash> >::type, Policy_Tl>::type>::type
69 
95  template<typename Key,
96  typename Mapped,
97  typename Hash_Fn,
98  typename Eq_Fn,
99  typename Resize_Policy,
100  bool Store_Hash,
101  typename Tag,
102  typename Policy_Tl,
103  typename _Alloc>
105  {
106  private:
107  typedef typename PB_DS_HASH_BASE base_type;
108 
109  public:
110  virtual
112 
113  protected:
115 
117  : base_type((const base_type&)other) { }
118 
119  template<typename T0>
120  basic_hash_table(T0 t0) : base_type(t0) { }
121 
122  template<typename T0, typename T1>
123  basic_hash_table(T0 t0, T1 t1) : base_type(t0, t1) { }
124 
125  template<typename T0, typename T1, typename T2>
126  basic_hash_table(T0 t0, T1 t1, T2 t2) : base_type(t0, t1, t2) { }
127 
128  template<typename T0, typename T1, typename T2, typename T3>
129  basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3)
130  : base_type(t0, t1, t2, t3) { }
131 
132  template<typename T0, typename T1, typename T2, typename T3, typename T4>
133  basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4)
134  : base_type(t0, t1, t2, t3, t4) { }
135 
136  template<typename T0, typename T1, typename T2, typename T3, typename T4,
137  typename T5>
138  basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
139  : base_type(t0, t1, t2, t3, t4, t5) { }
140 
141  template<typename T0, typename T1, typename T2, typename T3, typename T4,
142  typename T5, typename T6>
143  basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)
144  : base_type(t0, t1, t2, t3, t4, t5, t6) { }
145 
146  template<typename T0, typename T1, typename T2, typename T3, typename T4,
147  typename T5, typename T6, typename T7>
148  basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7)
149  : base_type(t0, t1, t2, t3, t4, t5, t6, t7) { }
150 
151  template<typename T0, typename T1, typename T2, typename T3, typename T4,
152  typename T5, typename T6, typename T7, typename T8>
153  basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6,
154  T7 t7, T8 t8)
155  : base_type(t0, t1, t2, t3, t4, t5, t6, t7, t8)
156  { }
157 
158  private:
160  operator=(const base_type&);
161  };
162 
163 #undef PB_DS_HASH_BASE
164 
165 
166 #define PB_DS_CC_HASH_BASE \
167  basic_hash_table<Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, \
168  cc_hash_tag, \
169  typename __gnu_cxx::typelist::create1<Comb_Hash_Fn>::type, _Alloc>
170 
171 
196  template<typename Key,
197  typename Mapped,
198  typename Hash_Fn = typename detail::default_hash_fn<Key>::type,
199  typename Eq_Fn = typename detail::default_eq_fn<Key>::type,
200  typename Comb_Hash_Fn = detail::default_comb_hash_fn::type,
201  typename Resize_Policy = typename detail::default_resize_policy<Comb_Hash_Fn>::type,
202  bool Store_Hash = detail::default_store_hash,
203  typename _Alloc = std::allocator<char> >
205  {
206  private:
208 
209  public:
211  typedef Hash_Fn hash_fn;
212  typedef Eq_Fn eq_fn;
213  typedef Resize_Policy resize_policy;
214  typedef Comb_Hash_Fn comb_hash_fn;
215 
218 
222  : base_type(h) { }
223 
228  cc_hash_table(const hash_fn& h, const eq_fn& e)
229  : base_type(h, e) { }
230 
236  cc_hash_table(const hash_fn& h, const eq_fn& e, const comb_hash_fn& ch)
237  : base_type(h, e, ch) { }
238 
245  cc_hash_table(const hash_fn& h, const eq_fn& e, const comb_hash_fn& ch,
246  const resize_policy& rp)
247  : base_type(h, e, ch, rp) { }
248 
252  template<typename It>
253  cc_hash_table(It first, It last)
254  { base_type::copy_from_range(first, last); }
255 
259  template<typename It>
260  cc_hash_table(It first, It last, const hash_fn& h)
261  : base_type(h)
262  { this->copy_from_range(first, last); }
263 
270  template<typename It>
271  cc_hash_table(It first, It last, const hash_fn& h, const eq_fn& e)
272  : base_type(h, e)
273  { this->copy_from_range(first, last); }
274 
282  template<typename It>
283  cc_hash_table(It first, It last, const hash_fn& h, const eq_fn& e,
284  const comb_hash_fn& ch)
285  : base_type(h, e, ch)
286  { this->copy_from_range(first, last); }
287 
296  template<typename It>
297  cc_hash_table(It first, It last, const hash_fn& h, const eq_fn& e,
298  const comb_hash_fn& ch, const resize_policy& rp)
299  : base_type(h, e, ch, rp)
300  { this->copy_from_range(first, last); }
301 
303  : base_type((const base_type&)other)
304  { }
305 
306  virtual
308 
310  operator=(const cc_hash_table& other)
311  {
312  if (this != &other)
313  {
314  cc_hash_table tmp(other);
315  swap(tmp);
316  }
317  return *this;
318  }
319 
320  void
322  { base_type::swap(other); }
323  };
324 
325 #undef PB_DS_CC_HASH_BASE
326 
327 
328 #define PB_DS_GP_HASH_BASE \
329  basic_hash_table<Key, Mapped, Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, \
330  gp_hash_tag, \
331  typename __gnu_cxx::typelist::create2<Comb_Probe_Fn, Probe_Fn>::type, _Alloc>
332 
333 
359  template<typename Key,
360  typename Mapped,
361  typename Hash_Fn = typename detail::default_hash_fn<Key>::type,
362  typename Eq_Fn = typename detail::default_eq_fn<Key>::type,
363  typename Comb_Probe_Fn = detail::default_comb_hash_fn::type,
364  typename Probe_Fn = typename detail::default_probe_fn<Comb_Probe_Fn>::type,
365  typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>::type,
366  bool Store_Hash = detail::default_store_hash,
367  typename _Alloc = std::allocator<char> >
369  {
370  private:
372 
373  public:
375  typedef Hash_Fn hash_fn;
376  typedef Eq_Fn eq_fn;
377  typedef Comb_Probe_Fn comb_probe_fn;
378  typedef Probe_Fn probe_fn;
379  typedef Resize_Policy resize_policy;
380 
383 
387  : base_type(h) { }
388 
393  gp_hash_table(const hash_fn& h, const eq_fn& e)
394  : base_type(h, e) { }
395 
401  gp_hash_table(const hash_fn& h, const eq_fn& e, const comb_probe_fn& cp)
402  : base_type(h, e, cp) { }
403 
410  gp_hash_table(const hash_fn& h, const eq_fn& e, const comb_probe_fn& cp,
411  const probe_fn& p)
412  : base_type(h, e, cp, p) { }
413 
422  gp_hash_table(const hash_fn& h, const eq_fn& e, const comb_probe_fn& cp,
423  const probe_fn& p, const resize_policy& rp)
424  : base_type(h, e, cp, p, rp) { }
425 
429  template<typename It>
430  gp_hash_table(It first, It last)
431  { base_type::copy_from_range(first, last); }
432 
437  template<typename It>
438  gp_hash_table(It first, It last, const hash_fn& h)
439  : base_type(h)
440  { base_type::copy_from_range(first, last); }
441 
448  template<typename It>
449  gp_hash_table(It first, It last, const hash_fn& h, const eq_fn& e)
450  : base_type(h, e)
451  { base_type::copy_from_range(first, last); }
452 
460  template<typename It>
461  gp_hash_table(It first, It last, const hash_fn& h, const eq_fn& e,
462  const comb_probe_fn& cp)
463  : base_type(h, e, cp)
464  { base_type::copy_from_range(first, last); }
465 
474  template<typename It>
475  gp_hash_table(It first, It last, const hash_fn& h, const eq_fn& e,
476  const comb_probe_fn& cp, const probe_fn& p)
477  : base_type(h, e, cp, p)
478  { base_type::copy_from_range(first, last); }
479 
490  template<typename It>
491  gp_hash_table(It first, It last, const hash_fn& h, const eq_fn& e,
492  const comb_probe_fn& cp, const probe_fn& p,
493  const resize_policy& rp)
494  : base_type(h, e, cp, p, rp)
495  { base_type::copy_from_range(first, last); }
496 
498  : base_type((const base_type&)other)
499  { }
500 
501  virtual
503 
505  operator=(const gp_hash_table& other)
506  {
507  if (this != &other)
508  {
509  gp_hash_table tmp(other);
510  swap(tmp);
511  }
512  return *this;
513  }
514 
515  void
517  { base_type::swap(other); }
518  };
520 #undef PB_DS_GP_HASH_BASE
521 
522 
528 #define PB_DS_BRANCH_BASE \
529  detail::container_base_dispatch<Key, Mapped, _Alloc, Tag, Policy_Tl>::type
530 
553  template<typename Key, typename Mapped, typename Tag,
554  typename Node_Update, typename Policy_Tl, typename _Alloc>
556  {
557  private:
558  typedef typename PB_DS_BRANCH_BASE base_type;
559 
560  public:
561  typedef Node_Update node_update;
562 
563  virtual
565 
566  protected:
568 
570  : base_type((const base_type&)other) { }
571 
572  template<typename T0>
573  basic_branch(T0 t0) : base_type(t0) { }
574 
575  template<typename T0, typename T1>
576  basic_branch(T0 t0, T1 t1) : base_type(t0, t1) { }
577 
578  template<typename T0, typename T1, typename T2>
579  basic_branch(T0 t0, T1 t1, T2 t2) : base_type(t0, t1, t2) { }
580 
581  template<typename T0, typename T1, typename T2, typename T3>
582  basic_branch(T0 t0, T1 t1, T2 t2, T3 t3)
583  : base_type(t0, t1, t2, t3) { }
584 
585  template<typename T0, typename T1, typename T2, typename T3, typename T4>
586  basic_branch(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4)
587  : base_type(t0, t1, t2, t3, t4) { }
588 
589  template<typename T0, typename T1, typename T2, typename T3, typename T4,
590  typename T5>
591  basic_branch(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
592  : base_type(t0, t1, t2, t3, t4, t5) { }
593 
594  template<typename T0, typename T1, typename T2, typename T3, typename T4,
595  typename T5, typename T6>
596  basic_branch(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)
597  : base_type(t0, t1, t2, t3, t4, t5, t6) { }
598  };
599 #undef PB_DS_BRANCH_BASE
600 
601 
602 #define PB_DS_TREE_NODE_AND_IT_TRAITS \
603  detail::tree_traits<Key, Mapped,Cmp_Fn,Node_Update,Tag,_Alloc>
604 
605 #define PB_DS_TREE_BASE \
606  basic_branch<Key,Mapped, Tag, \
607  typename PB_DS_TREE_NODE_AND_IT_TRAITS::node_update, \
608  typename __gnu_cxx::typelist::create2<Cmp_Fn, \
609  PB_DS_TREE_NODE_AND_IT_TRAITS>::type, _Alloc>
610 
611 
629  template<typename Key, typename Mapped, typename Cmp_Fn = std::less<Key>,
630  typename Tag = rb_tree_tag,
631  template<typename Node_CItr, typename Node_Itr,
632  typename Cmp_Fn_, typename _Alloc_>
633  class Node_Update = null_node_update,
634  typename _Alloc = std::allocator<char> >
635  class tree : public PB_DS_TREE_BASE
636  {
637  private:
639 
640  public:
642  typedef Cmp_Fn cmp_fn;
643 
644  tree() { }
645 
648  tree(const cmp_fn& c)
649  : base_type(c) { }
650 
654  template<typename It>
655  tree(It first, It last)
656  { base_type::copy_from_range(first, last); }
657 
662  template<typename It>
663  tree(It first, It last, const cmp_fn& c)
664  : base_type(c)
665  { base_type::copy_from_range(first, last); }
666 
667  tree(const tree& other)
668  : base_type((const base_type&)other) { }
669 
670  virtual
671  ~tree() { }
672 
673  tree&
674  operator=(const tree& other)
675  {
676  if (this != &other)
677  {
678  tree tmp(other);
679  swap(tmp);
680  }
681  return *this;
682  }
683 
684  void
685  swap(tree& other)
686  { base_type::swap(other); }
687  };
688 
689 #undef PB_DS_TREE_BASE
690 #undef PB_DS_TREE_NODE_AND_IT_TRAITS
691 
692 
693 #define PB_DS_TRIE_NODE_AND_IT_TRAITS \
694  detail::trie_traits<Key,Mapped,_ATraits,Node_Update,Tag,_Alloc>
695 
696 #define PB_DS_TRIE_BASE \
697  basic_branch<Key,Mapped,Tag, \
698  typename PB_DS_TRIE_NODE_AND_IT_TRAITS::node_update, \
699  typename __gnu_cxx::typelist::create2<_ATraits, \
700  PB_DS_TRIE_NODE_AND_IT_TRAITS >::type, _Alloc>
701 
702 
720  template<typename Key,
721  typename Mapped,
722  typename _ATraits = \
723  typename detail::default_trie_access_traits<Key>::type,
724  typename Tag = pat_trie_tag,
725  template<typename Node_CItr,
726  typename Node_Itr,
727  typename _ATraits_,
728  typename _Alloc_>
729  class Node_Update = null_node_update,
730  typename _Alloc = std::allocator<char> >
731  class trie : public PB_DS_TRIE_BASE
732  {
733  private:
735 
736  public:
738  typedef _ATraits access_traits;
739 
740  trie() { }
741 
744  trie(const access_traits& t)
745  : base_type(t) { }
746 
750  template<typename It>
751  trie(It first, It last)
752  { base_type::copy_from_range(first, last); }
753 
757  template<typename It>
758  trie(It first, It last, const access_traits& t)
759  : base_type(t)
760  { base_type::copy_from_range(first, last); }
761 
762  trie(const trie& other)
763  : base_type((const base_type&)other) { }
764 
765  virtual
766  ~trie() { }
767 
768  trie&
769  operator=(const trie& other)
770  {
771  if (this != &other)
772  {
773  trie tmp(other);
774  swap(tmp);
775  }
776  return *this;
777  }
778 
779  void
780  swap(trie& other)
781  { base_type::swap(other); }
782  };
784 #undef PB_DS_TRIE_BASE
785 #undef PB_DS_TRIE_NODE_AND_IT_TRAITS
786 
787 
793 #define PB_DS_LU_BASE \
794  detail::container_base_dispatch<Key, Mapped, _Alloc, list_update_tag, \
795  typename __gnu_cxx::typelist::create2<Eq_Fn, Update_Policy>::type>::type
796 
797 
810  template<typename Key,
811  typename Mapped,
812  class Eq_Fn = typename detail::default_eq_fn<Key>::type,
813  class Update_Policy = detail::default_update_policy::type,
814  class _Alloc = std::allocator<char> >
815  class list_update : public PB_DS_LU_BASE
816  {
817  private:
818  typedef typename PB_DS_LU_BASE base_type;
819 
820  public:
822  typedef Eq_Fn eq_fn;
823  typedef Update_Policy update_policy;
824 
826 
830  template<typename It>
831  list_update(It first, It last)
832  { base_type::copy_from_range(first, last); }
833 
834  list_update(const list_update& other)
835  : base_type((const base_type&)other) { }
836 
837  virtual
839 
840  list_update&
841  operator=(const list_update& other)
842  {
843  if (this !=& other)
844  {
845  list_update tmp(other);
846  swap(tmp);
847  }
848  return *this;
849  }
850 
851  void
853  { base_type::swap(other); }
854  };
856 #undef PB_DS_LU_BASE
857 
858  // @} group containers-pbds
859 } // namespace __gnu_pbds
860 
861 #endif
General-probing hash.
Definition: tag_and_trait.hpp:144
virtual ~trie()
Definition: assoc_container.hpp:766
gp_hash_table(It first, It last, const hash_fn &h, const eq_fn &e)
Definition: assoc_container.hpp:449
void swap(list_update &other)
Definition: assoc_container.hpp:852
PB_DS_CC_HASH_BASE base_type
Definition: assoc_container.hpp:207
gp_hash_table(const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp)
Definition: assoc_container.hpp:401
gp_hash_table(const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p, const resize_policy &rp)
Definition: assoc_container.hpp:422
basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8)
Definition: assoc_container.hpp:153
PB_DS_TRIE_BASE base_type
Definition: assoc_container.hpp:734
tree(const cmp_fn &c)
Definition: assoc_container.hpp:648
gp_hash_table(It first, It last, const hash_fn &h)
Definition: assoc_container.hpp:438
cc_hash_table(It first, It last, const hash_fn &h)
Definition: assoc_container.hpp:260
cc_hash_table(It first, It last)
Definition: assoc_container.hpp:253
Cmp_Fn cmp_fn
Comparison functor type.
Definition: assoc_container.hpp:642
virtual ~basic_hash_table()
Definition: assoc_container.hpp:111
basic_branch(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4)
Definition: assoc_container.hpp:586
void swap(cc_hash_table &other)
Definition: assoc_container.hpp:321
PB_DS_BRANCH_BASE base_type
Definition: assoc_container.hpp:558
basic_hash_table(const basic_hash_table &other)
Definition: assoc_container.hpp:116
#define PB_DS_TREE_BASE
Definition: assoc_container.hpp:605
basic_hash_table & operator=(const base_type &)
cc_hash_table & operator=(const cc_hash_table &other)
Definition: assoc_container.hpp:310
Node_Update node_update
Definition: assoc_container.hpp:561
cc_hash_tag container_category
Definition: assoc_container.hpp:210
gp_hash_table & operator=(const gp_hash_table &other)
Definition: assoc_container.hpp:505
#define PB_DS_GP_HASH_BASE
Definition: assoc_container.hpp:328
Resize_Policy resize_policy
Definition: assoc_container.hpp:379
virtual ~basic_branch()
Definition: assoc_container.hpp:564
cc_hash_table()
Default constructor.
Definition: assoc_container.hpp:217
trie(const trie &other)
Definition: assoc_container.hpp:762
direct_mask_range_hashing type
Dispatched type.
Definition: standard_policies.hpp:83
tree(It first, It last)
Definition: assoc_container.hpp:655
virtual ~gp_hash_table()
Definition: assoc_container.hpp:502
basic_branch(const basic_branch &other)
Definition: assoc_container.hpp:569
#define PB_DS_HASH_BASE
Definition: assoc_container.hpp:64
gp_hash_table(const gp_hash_table &other)
Definition: assoc_container.hpp:497
virtual ~cc_hash_table()
Definition: assoc_container.hpp:307
basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7)
Definition: assoc_container.hpp:148
tree(const tree &other)
Definition: assoc_container.hpp:667
cc_hash_table(It first, It last, const hash_fn &h, const eq_fn &e, const comb_hash_fn &ch)
Definition: assoc_container.hpp:283
#define PB_DS_CC_HASH_BASE
Definition: assoc_container.hpp:166
#define PB_DS_LU_BASE
Definition: assoc_container.hpp:793
Collision-chaining hash.
Definition: tag_and_trait.hpp:141
Eq_Fn eq_fn
Definition: assoc_container.hpp:822
basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
Definition: assoc_container.hpp:138
gp_hash_tag container_category
Definition: assoc_container.hpp:374
basic_branch()
Definition: assoc_container.hpp:567
basic_branch(T0 t0)
Definition: assoc_container.hpp:573
PB_DS_HASH_BASE base_type
Definition: assoc_container.hpp:107
void swap(trie &other)
Definition: assoc_container.hpp:780
#define PB_DS_BRANCH_BASE
Definition: assoc_container.hpp:528
virtual ~tree()
Definition: assoc_container.hpp:671
Probe_Fn probe_fn
Definition: assoc_container.hpp:378
gp_hash_table(const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p)
Definition: assoc_container.hpp:410
Update_Policy update_policy
Definition: assoc_container.hpp:823
#define PB_DS_TRIE_BASE
Definition: assoc_container.hpp:696
basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4)
Definition: assoc_container.hpp:133
cc_hash_table(const hash_fn &h, const eq_fn &e, const comb_hash_fn &ch, const resize_policy &rp)
Definition: assoc_container.hpp:245
trie(const access_traits &t)
Definition: assoc_container.hpp:744
basic_hash_table(T0 t0, T1 t1, T2 t2)
Definition: assoc_container.hpp:126
gp_hash_table(const hash_fn &h)
Definition: assoc_container.hpp:386
Resize_Policy resize_policy
Definition: assoc_container.hpp:213
Definition: assoc_container.hpp:104
trie & operator=(const trie &other)
Definition: assoc_container.hpp:769
Definition: assoc_container.hpp:731
_ATraits access_traits
Element access traits type.
Definition: assoc_container.hpp:738
Definition: assoc_container.hpp:555
cc_hash_table(const hash_fn &h, const eq_fn &e)
Definition: assoc_container.hpp:228
lu_move_to_front_policy type
Dispatched type.
Definition: standard_policies.hpp:112
Definition: assoc_container.hpp:815
PB_DS_GP_HASH_BASE base_type
Definition: assoc_container.hpp:371
list_update(const list_update &other)
Definition: assoc_container.hpp:834
tree(It first, It last, const cmp_fn &c)
Definition: assoc_container.hpp:663
Eq_Fn eq_fn
Definition: assoc_container.hpp:376
trie(It first, It last, const access_traits &t)
Definition: assoc_container.hpp:758
Definition: standard_policies.hpp:76
basic_branch(T0 t0, T1 t1)
Definition: assoc_container.hpp:576
cc_hash_table(const hash_fn &h)
Definition: assoc_container.hpp:221
gp_hash_table(It first, It last)
Definition: assoc_container.hpp:430
Comb_Hash_Fn comb_hash_fn
Definition: assoc_container.hpp:214
gp_hash_table(It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p, const resize_policy &rp)
Definition: assoc_container.hpp:491
cc_hash_table(It first, It last, const hash_fn &h, const eq_fn &e, const comb_hash_fn &ch, const resize_policy &rp)
Definition: assoc_container.hpp:297
list_update_tag container_category
Definition: assoc_container.hpp:821
PB_DS_TREE_BASE base_type
Definition: assoc_container.hpp:638
basic_hash_table(T0 t0)
Definition: assoc_container.hpp:120
gp_hash_table(It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp, const probe_fn &p)
Definition: assoc_container.hpp:475
Hash_Fn hash_fn
Definition: assoc_container.hpp:211
Hash_Fn hash_fn
Definition: assoc_container.hpp:375
Definition: assoc_container.hpp:635
basic_hash_table()
Definition: assoc_container.hpp:114
basic_branch(T0 t0, T1 t1, T2 t2, T3 t3)
Definition: assoc_container.hpp:582
Comb_Probe_Fn comb_probe_fn
Definition: assoc_container.hpp:377
basic_branch(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)
Definition: assoc_container.hpp:596
void swap(gp_hash_table &other)
Definition: assoc_container.hpp:516
Definition: assoc_container.hpp:204
gp_hash_table(const hash_fn &h, const eq_fn &e)
Definition: assoc_container.hpp:393
gp_hash_table(It first, It last, const hash_fn &h, const eq_fn &e, const comb_probe_fn &cp)
Definition: assoc_container.hpp:461
cc_hash_table(const hash_fn &h, const eq_fn &e, const comb_hash_fn &ch)
Definition: assoc_container.hpp:236
virtual ~list_update()
Definition: assoc_container.hpp:838
trie(It first, It last)
Definition: assoc_container.hpp:751
trie()
Definition: assoc_container.hpp:740
tree & operator=(const tree &other)
Definition: assoc_container.hpp:674
basic_branch(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
Definition: assoc_container.hpp:591
Eq_Fn eq_fn
Definition: assoc_container.hpp:212
void swap(tree &other)
Definition: assoc_container.hpp:685
cc_hash_table(const cc_hash_table &other)
Definition: assoc_container.hpp:302
basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3)
Definition: assoc_container.hpp:129
PB_DS_LU_BASE base_type
Definition: assoc_container.hpp:818
Definition: assoc_container.hpp:368
basic_branch(T0 t0, T1 t1, T2 t2)
Definition: assoc_container.hpp:579
list_update(It first, It last)
Definition: assoc_container.hpp:831
cc_hash_table(It first, It last, const hash_fn &h, const eq_fn &e)
Definition: assoc_container.hpp:271
basic_hash_table(T0 t0, T1 t1)
Definition: assoc_container.hpp:123
tree()
Definition: assoc_container.hpp:644
void swap(exception_ptr &__lhs, exception_ptr &__rhs)
Definition: exception_ptr.h:160
gp_hash_table()
Default constructor.
Definition: assoc_container.hpp:382
List-update.
Definition: tag_and_trait.hpp:168
basic_hash_table(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)
Definition: assoc_container.hpp:143
list_update & operator=(const list_update &other)
Definition: assoc_container.hpp:841
list_update()
Definition: assoc_container.hpp:825