由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系? (转载)
相关主题
关于不同类型的smart pointer[c++] reference 真得不能bound to a second object 么?
c++ interview: iterator 和 pointer区别?stl的interator是一种smart pointer吗
is smart_ptr really that good?Why do I need to use "plain" pointer?
c++ 里用到pointer 的地方我们尽可能用smart pointer吗?pointer overflow
C++的smart pointer注定是个二流的东西C++ Q05: pointer to constant variable
琢磨了一下c++ smart pointer,发现不能到处用C++ Q93 - Q95 (转载)
什么时候使用c++ smart pointer?int F::*x = &F::x是什么意思?
[合集] can one type cast reference in C++不如各位高手挑个专题讲讲C++11吧
相关话题的讨论汇总
话题: ptr话题: smart话题: counting话题: auto话题: reference
进入Programming版参与讨论
1 (共1页)
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

1 (共1页)
进入Programming版参与讨论
相关主题
不如各位高手挑个专题讲讲C++11吧C++的smart pointer注定是个二流的东西
Go adopts JavaScript’s idea of semicolon insertion琢磨了一下c++ smart pointer,发现不能到处用
又问几个c语言编程的题目什么时候使用c++ smart pointer?
smart pointer 一问[合集] can one type cast reference in C++
关于不同类型的smart pointer[c++] reference 真得不能bound to a second object 么?
c++ interview: iterator 和 pointer区别?stl的interator是一种smart pointer吗
is smart_ptr really that good?Why do I need to use "plain" pointer?
c++ 里用到pointer 的地方我们尽可能用smart pointer吗?pointer overflow
相关话题的讨论汇总
话题: ptr话题: smart话题: counting话题: auto话题: reference