123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // (C) Copyright Ion Gaztanaga 2013-2013. Distributed under the Boost
- // Software License, Version 1.0. (See accompanying file
- // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- //
- // See http://www.boost.org/libs/container for documentation.
- //
- //////////////////////////////////////////////////////////////////////////////
- #include <boost/container/detail/config_begin.hpp>
- #include <boost/container/detail/workaround.hpp>
- //[doc_custom_tree
- #include <boost/container/set.hpp>
- //Make sure assertions are active
- #ifdef NDEBUG
- #undef NDEBUG
- #endif
- #include <cassert>
- int main ()
- {
- using namespace boost::container;
- //First define several options
- //
- //This option specifies an AVL tree based associative container
- typedef tree_assoc_options< tree_type<avl_tree> >::type AVLTree;
- //This option specifies an AVL tree based associative container
- //disabling node size optimization.
- typedef tree_assoc_options< tree_type<avl_tree>
- , optimize_size<false> >::type AVLTreeNoSizeOpt;
- //This option specifies an Splay tree based associative container
- typedef tree_assoc_options< tree_type<splay_tree> >::type SplayTree;
- //Now define new tree-based associative containers
- //
- //AVLTree based set container
- typedef set<int, std::less<int>, std::allocator<int>, AVLTree> AvlSet;
- //AVLTree based set container without size optimization
- typedef set<int, std::less<int>, std::allocator<int>, AVLTreeNoSizeOpt> AvlSetNoSizeOpt;
- //Splay tree based multiset container
- typedef multiset<int, std::less<int>, std::allocator<int>, SplayTree> SplayMultiset;
- //Use them
- //
- AvlSet avl_set;
- avl_set.insert(0);
- assert(avl_set.find(0) != avl_set.end());
- AvlSetNoSizeOpt avl_set_no_szopt;
- avl_set_no_szopt.insert(1);
- avl_set_no_szopt.insert(1);
- assert(avl_set_no_szopt.count(1) == 1);
- SplayMultiset splay_mset;
- splay_mset.insert(2);
- splay_mset.insert(2);
- assert(splay_mset.count(2) == 2);
- return 0;
- }
- //]
- #include <boost/container/detail/config_end.hpp>
|