這三個是分別來自Qt,STL和Boost的共享指針類。他們似乎在功能上是相同的,所以我很困惑:QSharedPointer VS std :: tr1 :: shared_ptr VS boost :: tr1 :: shared_ptr
- 他們每個人的優缺點是什麼?
- 爲什麼Boost和Qt版本甚至存在 - 它已經在STL中,爲什麼要自己創建?
- 我應該如何選擇使用哪一個?
這三個是分別來自Qt,STL和Boost的共享指針類。他們似乎在功能上是相同的,所以我很困惑:QSharedPointer VS std :: tr1 :: shared_ptr VS boost :: tr1 :: shared_ptr
shared_ptr
是標準和便攜式std::shared_ptr
是boost::shared_ptr
標準的更換(即升壓一個來到第一,併成爲標準)std::shared_ptr
,否則使用boost::shared_ptr
。
它不是「已經在STL中」。 TR1基於其Boost上的shared_ptr。 http://en.wikipedia.org/wiki/C%2B%2B_Technical_Report_1#Smart_pointers。我不知道Qt。 – 2011-04-13 04:47:28
因爲我不熟悉QT,所以不能保證答案,但是... 1.始終更喜歡STL版本,除非您知道它有影響您的錯誤。 2.升級版本在其他版本之前存在**年**,STL版本完全基於升級版本。 3.參見#1。 – ildjarn 2011-04-13 04:53:38