diff options
Diffstat (limited to 'src/boost/libs/container/example/doc_custom_tree.cpp')
-rw-r--r-- | src/boost/libs/container/example/doc_custom_tree.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/boost/libs/container/example/doc_custom_tree.cpp b/src/boost/libs/container/example/doc_custom_tree.cpp new file mode 100644 index 00000000..ad9d9e0a --- /dev/null +++ b/src/boost/libs/container/example/doc_custom_tree.cpp @@ -0,0 +1,69 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (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> |