スマートポインタの参照カウントで錆RC-

ほとんどの場合、所有権は非常に明確である:正確に値を持つ変数を知っています。しかし、いくつかの場合には単一の値は、複数の所有者であってもよいです。例えば、グラフデータ構造においては、複数のノードの同じ側を指してもよく、このノードは、すべてのエッジポイントを持っている概念です。何のエッジがそれに存在しなくなるまでのノードが前に洗浄するべきではありません。

マルチ所有権を有効にするには、錆が求めている  Rc<T> タイプ。題さ参照カウント(参照カウント)の略。参照カウントは、基準値のレコード数がこの値が使用中であるかどうかを知ることを意味します。なし有効な参照の代わりにゼロ基準の値は、クリーンアップすることができます。

列挙リスト{ 
    短所(I32、Rcの <リスト> )、
    ナシ、
} 

クレートを使用::リスト:: {短所はnil}。
使用のstd :: RC :: Rcは、

メイン(){FN  = Rcとを:: 新しい(短所(5、Rcは:: 新しい(反対(10、Rcは:: 新しい(NIL)))))。
    println(!" = {}を作成した後にカウント"、Rcは:: strong_count(&A ))。
    聞かせてB =短所(3、Rcは::クローン(&A )); 
    println!(" = {} Bを作成した後、カウント"(&、Rcは:: strong_counta)参照)。
    { 
        せてC =短所(4、Rcは::クローン(&A ))。
        println!(" Cを作成した後にカウント= {} "、Rcは:: strong_count(&A ))。
    } 
    
    のprintln!(" cはスコープの外に出た後} {=カウント"、Rcは:: strong_count(&A )); 
}

おすすめ

転載: www.cnblogs.com/aguncn/p/11440572.html