f********a 发帖数: 1109 | 1 【 以下文字转载自 JobHunting 讨论区 】
发信人: fololunsia (我心飞扬), 信区: JobHunting
标 题: 请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系?
发信站: BBS 未名空间站 (Mon Jun 4 20:21:49 2007)
经常有人说auto pointer就是reference counting的一种。又有人说不对,smart
pointer才是。我也搞糊涂了。google了一下也没有什么结果。
请教一下,Auto_Ptr、Smart Ptr 和 Reference Counting 之间是什么关系? |
o******r 发帖数: 259 | 2 在thrust填坑前我先灌点水,
smart ptr指的是仿ptr用法,加入额外的处理的类型,
比如简单的garbage collector, reference counting等
auto_ptr 可以说是smart ptr的一种,由new得到
好了,要拍砖随便
【在 f********a 的大作中提到】 : 【 以下文字转载自 JobHunting 讨论区 】 : 发信人: fololunsia (我心飞扬), 信区: JobHunting : 标 题: 请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系? : 发信站: BBS 未名空间站 (Mon Jun 4 20:21:49 2007) : 经常有人说auto pointer就是reference counting的一种。又有人说不对,smart : pointer才是。我也搞糊涂了。google了一下也没有什么结果。 : 请教一下,Auto_Ptr、Smart Ptr 和 Reference Counting 之间是什么关系?
|
q*****g 发帖数: 72 | 3 smart ptr是指一类pointer,它们具有比plain pointer更强大的
功能,比如说自动关闭resource 。。。
auto_ptr是smart ptr的一种,它的作用是自动delete memory,防止
memory leak,但是它的ownership会transfer,if copied
shared_ptr 是另一种 smart ptr,它也是防止memory leak等,但是
它的作用机理是reference counting,与auto_ptr不同。
【在 o******r 的大作中提到】 : 在thrust填坑前我先灌点水, : smart ptr指的是仿ptr用法,加入额外的处理的类型, : 比如简单的garbage collector, reference counting等 : auto_ptr 可以说是smart ptr的一种,由new得到 : 好了,要拍砖随便
|
t****t 发帖数: 6806 | 4 拍死你
【在 o******r 的大作中提到】 : 在thrust填坑前我先灌点水, : smart ptr指的是仿ptr用法,加入额外的处理的类型, : 比如简单的garbage collector, reference counting等 : auto_ptr 可以说是smart ptr的一种,由new得到 : 好了,要拍砖随便
|
o******r 发帖数: 259 | 5 我反拍.
我知道你C++牛,我只能算法上找回场子了。
你要把下面这题整出来,以后我就知难而退了:)
Design and describe a system/application that will most efficiently prod
uce a report of the top 1 million Google search requests. You are given:
1. You are given 12 servers to work with. They are all dual-processor
machines with 4Gb of RAM, 4x400GB hard drives and networked together.(B
asically, nothing more than high-end PC's)
2. The log data has already been cleaned for you. It consists of 100
Billion log lines, broken down into 12 320 G
【在 t****t 的大作中提到】 : 拍死你
|
t****t 发帖数: 6806 | 6 说的不错,补充一下
auto_ptr已经在standard里了.它不支持 reference counting,但是保证所指向的
object永远只有一个ownership.
shared_ptr是在tr1里,它是ref counting的.
另外有一个weak_ptr,和smart_ptr配合使用的,用来smart_ptr的循环链接造成的memory
leak(具体怎么弄其实我也搞不清).也在tr1里.
【在 q*****g 的大作中提到】 : smart ptr是指一类pointer,它们具有比plain pointer更强大的 : 功能,比如说自动关闭resource 。。。 : auto_ptr是smart ptr的一种,它的作用是自动delete memory,防止 : memory leak,但是它的ownership会transfer,if copied : shared_ptr 是另一种 smart ptr,它也是防止memory leak等,但是 : 它的作用机理是reference counting,与auto_ptr不同。
|
d*****r 发帖数: 2 | 7 Auto_Ptr是STL中对Smart Porinter的一种实现. Smart Pointer的关键是如何处理对象的拷贝(包括拷贝构造和赋值). Reference Counting只是其中的一种方法. 其他方法还包括:
copy prevention (将拷贝构造函数和赋值算子定义为private)
create new copy
owership transfer
reference linking
copy on write
...
各种拷贝技术适用予不同作用的场合. 有兴趣可参考boost中定义的scoped_ptr, scoped_arry, shared_ptr, shared_array, weak_ptr and intrusive_ptr.
【在 f********a 的大作中提到】 : 【 以下文字转载自 JobHunting 讨论区 】 : 发信人: fololunsia (我心飞扬), 信区: JobHunting : 标 题: 请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系? : 发信站: BBS 未名空间站 (Mon Jun 4 20:21:49 2007) : 经常有人说auto pointer就是reference counting的一种。又有人说不对,smart : pointer才是。我也搞糊涂了。google了一下也没有什么结果。 : 请教一下,Auto_Ptr、Smart Ptr 和 Reference Counting 之间是什么关系?
|
t****t 发帖数: 6806 | 8 我不懂算法,也不care...你随便。
【在 o******r 的大作中提到】 : 我反拍. : 我知道你C++牛,我只能算法上找回场子了。 : 你要把下面这题整出来,以后我就知难而退了:) : Design and describe a system/application that will most efficiently prod : uce a report of the top 1 million Google search requests. You are given: : 1. You are given 12 servers to work with. They are all dual-processor : machines with 4Gb of RAM, 4x400GB hard drives and networked together.(B : asically, nothing more than high-end PC's) : 2. The log data has already been cleaned for you. It consists of 100 : Billion log lines, broken down into 12 320 G
|