summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/container/example/doc_custom_tree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/container/example/doc_custom_tree.cpp')
-rw-r--r--src/boost/libs/container/example/doc_custom_tree.cpp69
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>