我想存儲一個指向一個固定大小數組的共享指針到一個向量中,我想使用一個共享指針,因爲我必須將一個指向數組的指針傳遞給另一個類,寫在數組中,我想擁有多個數組,因爲我可能有更多的寫入類實例,每個實例都需要一個數組寫入,它們會在數組中寫入大量數據,因此移動它們不是不錯的選擇。存儲向量中的數組共享指針
std::shared_ptr<char> sp(new char [MAX_LENGTH], std::default_delete<char[]>());
arrayVect.push_back(sp);
矢量被定義爲類的成員,如:
std::vector< std::shared_ptr< char [ MAX_LENGTH ] > > arrayVect;
,我發現了錯誤:
error: no matching function for call to ‘std::vector<std::shared_ptr<char [MAX_LENGTH]> >::push_back(std::shared_ptr<char []>&)’
我已經嘗試了不同的選擇,但他們都沒有工作,可能你指出了正確的做法嗎?或者是否有我失蹤的替代方案?寫入類需要一個用於寫入函數的字符數組,所以我認爲我被卡住了數組。
謝謝!
'的std ::矢量<性病:: shared_ptr的> arrayVect;' –
CinCout
對子級不是被共享的指針到一個單個字符的向量?如果我想訪問如下內容: *(arrayVect.at(0))[1] 或類似的東西? –
不,這不會是指向單個字符的指針。實際上,數組通常衰變爲指針。 –