Redian新闻
>
请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系? (转载)
avatar
请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系? (转载)# Programming - 葵花宝典
f*a
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 之间是什么关系?
avatar
o*r
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 之间是什么关系?

avatar
q*g
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得到
: 好了,要拍砖随便

avatar
t*t
4
拍死你

【在 o******r 的大作中提到】
: 在thrust填坑前我先灌点水,
: smart ptr指的是仿ptr用法,加入额外的处理的类型,
: 比如简单的garbage collector, reference counting等
: auto_ptr 可以说是smart ptr的一种,由new得到
: 好了,要拍砖随便

avatar
o*r
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 的大作中提到】
: 拍死你
avatar
t*t
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不同。

avatar
d*r
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 之间是什么关系?

avatar
t*t
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

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。