Make customization example more clear with a heading before each option

This commit is contained in:
Ion Gaztañaga
2026-01-24 22:53:42 +01:00
parent 34bdb94986
commit 06cdd2fc4a
6 changed files with 80 additions and 32 deletions

View File

@@ -21,46 +21,49 @@ int main ()
using namespace boost::container;
//First define several options
//
//--------------------------------------------
// 'tree_type' option
//--------------------------------------------
//This option specifies an AVL tree based associative container
typedef tree_assoc_options< tree_type<avl_tree> >::type AVLTree;
//This option specifies an Splay tree based associative container
typedef tree_assoc_options< tree_type<splay_tree> >::type SplayTree;
//Splay tree based multiset container
typedef multiset<int, std::less<int>, new_allocator<int>, SplayTree> SplayMultiset;
//AVLTree based set container
typedef set<int, std::less<int>, new_allocator<int>, AVLTree> AvlSet;
AvlSet avl_set;
avl_set.insert(0);
assert(avl_set.find(0) != avl_set.end());
SplayMultiset splay_mset;
splay_mset.insert(2);
splay_mset.insert(2);
assert(splay_mset.count(2) == 2);
//--------------------------------------------
// 'optimize_size' option
//--------------------------------------------
//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>, new_allocator<int>, AVLTree> AvlSet;
//AVLTree based set container without size optimization
typedef set<int, std::less<int>, new_allocator<int>, AVLTreeNoSizeOpt> AvlSetNoSizeOpt;
//Splay tree based multiset container
typedef multiset<int, std::less<int>, new_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;
}
//]