mirror of
https://github.com/boostorg/container.git
synced 2026-02-23 15:42:17 +00:00
Make customization example more clear with a heading before each option
This commit is contained in:
@@ -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;
|
||||
}
|
||||
//]
|
||||
|
||||
Reference in New Issue
Block a user