&豪
豪->blog
C++博客
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
随笔:80 文章:79 评论:222 引用:0
2008年4月21日
内存池(version1.1)
摘要: 再参考了《Modern C++ Design》的FixedAllocator的设计,并且优化了一下算法,虽然最坏时间复杂度还是O(N)的,但是在通常情况下,new/delete的使用已经获得了比较好的性能了。Chunk.h和version1.0的差不多,只是去掉了析构函数,让Chunk直接被FixedAlloctor操作Chunk.h #ifndef CHUNK_H#define&nb...
阅读全文
posted @
2008-04-21 16:15
豪 阅读(1900) |
评论 (3)
|
编辑
收藏
2008年4月20日
内存池(version1.0)
摘要: 用了《Modern C++ Design》上的那个Chunk,在Chunk查找Block的时间是O(1),但是在MemPool的ChunkList里面查找某内存地址却需要O(n)的时间复杂度,因为我的算法只是线性的便利ChunkLisk的链表,所以但内存池里面同时存在大量小对象时候,效果不是很好,比普通的new还差,但是如果内存池内同时存在的小对象的数目较小的时候,可以获得不错的性能,计划vers...
阅读全文
posted @
2008-04-20 17:53
豪 阅读(89) |
评论 (0)
|
编辑
收藏
2008年4月17日
智能指针源码
智能指针源码,可像普通指针一样使用,但可以自动释放内存,代码很短,看一下就明白原理了。
#ifndef AUTOPTR
#define
AUTOPTR
/**/
/*
*
* 智能指针类
*/
template
<
class
T
>
class
AutoPtr
{
public
:
AutoPtr(T
*
p
=
0
) : pointee(p)
{}
//
默认构造函数
template
<
class
U
>
AutoPtr(AutoPtr
<
U
>&
rhs) : pointee(rhs.release())
{}
//
复制构造函数
~
AutoPtr()
{delete pointee;}
template
<
class
U
>
AutoPtr
<
T
>&
operator
=
(AutoPtr
<
U
>&
rhs)
{
//
赋值函数
if
(
this
!=
&
rhs)
{
reset(rhs.release());
}
return
*
this
;
}
T
&
operator
*
()
const
{
return
*
pointee;}
T
*
operator
->
()
const
{
return
pointee;}
T
*
get
()
const
{
return
pointee;}
//
获取dumb pointer
T
*
release()
{
//
释放dumb pointer 的拥有权,并返回其值
T
*
oldPointee
==
pointee;
pointee
=
0
;
return
oldPointee;
}
void
reset(T
*
p
=
0
)
{
//
重复置p指针
if
(pointee
!=
p)
{
delete pointee;
pointee
=
p;
}
}
private
:
T
*
pointee;
}
;
#endif
AUTOPTR
test.cpp
#include
"
AutoPtr.h
"
#include
<
iostream
>
#include
<
string
>
using
namespace
std;
int
main()
{
AutoPtr
<
int
>
p
=
new
int
;
*
p
=
100
;
printf(
"
%d\n
"
,
*
p);
AutoPtr
<
string
>
sp
=
new
string
;
*
sp
=
"
hello world
"
;
printf(
"
%s\n
"
, sp
->
c_str());
return
0
;
}
posted @
2008-04-17 17:01
豪 阅读(109) |
评论 (0)
|
编辑
收藏
2008年4月12日
php文件上传类v1.0
摘要: 今天做面试题,有一个文件上传的,发觉以前做项目为了赶时间都是直接用别人的上传类,交笔试题,怎么也不能用别人的吧,所以就写了一个,可能很多bug,没实际项目测试过,呵呵 <?php/** * 文件上传类 * 成员变量带*号必须要初始化 * @version 1.0 * @author howe...
阅读全文
posted @
2008-04-12 11:47
豪 阅读(125) |
评论 (0)
|
编辑
收藏
2008年4月9日
More Effective 的 Reference Counting
摘要: 发觉计算机很多东西都是相同的,记得操作系统时候学过这一概率 copy on write,在Reference Counted中彻底用到,代码的设计确实精妙,可以在不修改客户端得类,利用RCIPtr间接指针,对客户端的类实现引用计数,太妙了,详细见代码吧,代码中Widget为已有的客户端的类,RCIPtr是一个间接指针,RCObject是引用计数的基类,所有需要引用计数的类都必须继承他,换句话说,R...
阅读全文
posted @
2008-04-09 21:36
豪 阅读(89) |
评论 (0)
|
编辑
收藏
仅列出标题
下一页
<
2008年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
公告
潜心看书研究!
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(14)
给我留言
查看公开留言
查看私人留言
随笔分类
(79)
AJAX(1)
(rss)
C++之梦(10)
(rss)
DesignPattern(1)
(rss)
PHP之路(9)
(rss)
TCP/IP
(rss)
VC
(rss)
计算机图形学(2)
(rss)
生活感想(24)
(rss)
算法&ACM(32)
(rss)
文章分类
(77)
ACM题目(26)
(rss)
Basic C++(8)
(rss)
Java(4)
(rss)
MFC(2)
(rss)
php学习与实践(4)
(rss)
操作系统(1)
(rss)
计算机(1)
(rss)
数据结构与算法(29)
(rss)
数论(1)
(rss)
网络(1)
(rss)
相册
MY LIFE
MY PRODUCTION
SCUT/ICPC MY TEAM
ACM OJ
HOJ
POJ
TOJ
URAL
UVA
ZOJ
My friends
Apple's Garden
asp's blog
chgsh's blog
evicn's blog
jay_zzw's blog
shyli's blog
sicheng's blog
xmm's blog
豪的space
踏雪赤兔's blog
搜索
积分与排名
积分 - 59784
排名 - 23
最新评论
1. re: 状态压缩DP, pku3020[未登录]
评论内容较长,点击标题查看
--菜鸟
2. re: 扩展的欧拉函数 pku1091
你上面的讲解跟程序有出入哦...
上面应该是判断m是否为素数,且p应该是m的因子
--maik
3. re: 最小生成树prim算法[未登录]
帅哥
--sky
4. re: 内存池(version1.1)
一直都有在看loki,甚至我认为这是我看过最好的C++书籍,呵呵。
--矩阵操作
5. re: 冒泡排序的优化算法
这个东西有必要抄吗?我的blog不是原创会注明转载
--豪
阅读排行榜
1. 内存池(version1.1)(1900)
2. 看 c++primer 后的一个问题(1864)
3. 中国剩余定理(同余方程组)小结(1417)
4. 扩展的欧拉函数 pku1091(1349)
5. 又是一题动态规划--经典(1193)
评论排行榜
1. 好高兴啊,a+b那题一次通过啦,acm有个好开始!!!^_^(25)
2. 今天又过条简单题,呵呵(14)
3. 看 c++primer 后的一个问题(13)
4. 变量初始化的重要性!(9)
5. 从二叉树的递归遍历想到的:利用重载函数,使函数接口更"友好"(9)