shared ptr中高階應用

2021-09-10 02:31:12 字數 718 閱讀 7727

在編寫基於虛函式的多型**時,指標的型別轉換很有用,比如把乙個基類的指標轉換成乙個派生類的指標或者反過來。但是對於shared_ptr不能使用諸如static_cast(p.get())的形式,這樣會導致轉型後的指標無法再被shared_ptr正確管理。

為了支援類似的用法,shared_ptr提供了類似的轉型函式,static_pointer_cast()、dynamic_pointer_cast()、const_pointer_cast(),他們與標準的轉換操作符類似static_cast,但返回的是轉型後的shared_ptr。

shared_ptr能夠儲存void*型的指標,而void*型指標可以指向任何任意型別,因此shared_ptr就像乙個泛型的指標容器,用於容納任何型別的能力。

enable_shared_from_this ,其他類繼承這個類,成員函式shared_from_this,返回this的shared_ptr。需要注意的是,不能對乙個普通物件使用shared_from_this。

class self_shared:public

std::enable_shared_from_this;

auto sp = std::make_shared();

auto sp2 = sp->shared_from_this();

self_shared ss;

ss.shared_from_this //error

for迴圈再pandas中高階應用

對每一列特徵值進行歸一化 for i in x.columns acidity max x i max deftransform x return x acidity max x i x i map transform str2float 法1 把每一列中的字串轉換成int型別 race x rac...

python中高階函式

一等公民 高階函式 高階函式 high order function def counter base def inc step 1 nonlocal base base step return base return inc 上面的counter是高階函式,因為return inc,即返回函式 內...

Python中高階容器

python 中常見的容器為 list set dict tuple 這裡主要探索下不常見的容器 author jiangnan he list set dict tuple import queue 佇列 import heapq 優先佇列 實現堆排序 大小堆 from collections i...