码迷,mamicode.com
首页 > 其他好文 > 详细

boost库使用:仿SGI-STL实现的一个树节点内存allocator

时间:2014-05-27 02:41:54      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:des   style   c   class   blog   code   

bubuko.com,布布扣
 1 //////////////////////////////////////////////////////////////////////////
 2 //code by hzs
 3 //email: huangzhesi@gmail.com
 4 //Last modified: 2014-5-18 21:05
 5 //////////////////////////////////////////////////////////////////////////
 6 
 7 #ifndef _TREE_NODE_ALLOC_H
 8 #define _TREE_NODE_ALLOC_H
 9 
10 #include <boost/pool/pool_alloc.hpp>
11 
12 //树节点内存管理:仿SGI-STL-(rb-tree)
13 
14 //arg1: 树节点的值
15 //arg2: 树节点
16 template<typename Value, typename tree_node>
17 class TreeNodeAlloc {
18 public:
19     typedef Value value_type;
20     typedef tree_node* link_type;
21 
22     typedef boost::fast_pool_allocator<tree_node> Tree_Node_Alloc;    //使用boost::fast_pool_allocator
23     Tree_Node_Alloc tree_node_alloc_;
24 
25     link_type get_node() { return Tree_Node_Alloc::allocate(); }    //分配内存空间
26     void put_node(link_type p) { Tree_Node_Alloc::deallocate(p); }    //回收内存空间
27 
28     link_type create_node(const value_type& x) {
29         link_type tmp = get_node();
30         tree_node_alloc_.construct(tmp, tree_node());    //构造(若tree_node中均为POD则无需此步)
31         tmp->value_field = x;    //给值域赋值
32 
33         return tmp;
34     }
35 
36     void destroy_node(link_type p) {
37         tree_node_alloc_.destroy(p);    //析构(无构造则无析构)
38         put_node(p);
39     }
40 };
41 
42 #endif
bubuko.com,布布扣

 

 

 

boost库使用:仿SGI-STL实现的一个树节点内存allocator,布布扣,bubuko.com

boost库使用:仿SGI-STL实现的一个树节点内存allocator

标签:des   style   c   class   blog   code   

原文地址:http://www.cnblogs.com/hzhesi/p/3735697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!