2014-02-20 35 views
1

從Boost版本1.53開始,可以使用shared_ptr來保存指向動態分配數組的指針 。 (http://www.boost.org/doc/libs/1_55_0/libs/smart_ptr/shared_ptr.htm應該繼續使用boost :: shared_array還是使用boost :: shared_ptr <type []>?

此外,使用的shared_ptr具有分配器功能,如升壓:: make_shared < INT的益處[]>(...);
我應該在可能的時候開始使用boost :: shared_ptr而不是boost :: shared_array嗎?看來boost :: shared_ptr可以完成boost :: shared_array所做的大部分工作。

+0

'shared_array'的一個優點是,它覆蓋'[]'操作符。 ''shared_ptr '你需要首先解引用指針:'(* sharedPtr)[i]'而不是'sharedArray [i]' – Nick

+1

'std :: vector'通常是更好的選擇。 –

+2

@Nick:不需要,''shared_ptr'支持'operator []'數組類型,另一方面不支持'operator->'或'operator *'。請參閱http://www.boost.org/doc/libs/1_55_0/boost/smart_ptr/shared_ptr.hpp – dalle

回答

1

如果代碼是正確的並且正常工作,我不會做主題更改。

如果我有空餘時間並希望做出改變,我會馬上遷移到std::shared_ptr<T[]>

相關問題