2014-01-24 81 views
0

我試圖決定什麼是在我的硬件中使用的最佳選擇。 我有地圖(我編碼它),其應該存儲整數ID的密鑰和類名爲風扇的共享指針值:在地圖中使用共享指針

Map<Id, shared_ptr<Fan>> Online_list; 

什麼是更好的使用shared_ptr<Fan>&或沒有參考?

我的功課是關於像Facebook創建服務器風扇上線和下線,所以有兩個地圖IM一個叫Online_list等爲Offline_list,所以當風扇斷開我需要從上線列表中刪除他並將其添加到離線列表中。

+0

如果您存儲實際的引用類型,那麼您必須在其他地方管理該對象的生命週期。這只是比必要的更多的工作。 – Chad

+0

我不明白這是如何不知道你想要完成什麼。 –

回答

1

A shared_ptr是一種參考。一個帶有內存管理的指針。由於內部引用相同的數據(複製構造函數增量引用計數等),因此可以存儲普通的shared_ptr

1

通常這是最好的不是指針在所有存儲,而只是存儲Fan對象的價值。 two東西擁有這個Fan對象是否真的有意義?

但是,假設您的設計是正確的,那麼您應該簡單地按值存儲shared_ptr

+0

使用它是有道理的,因爲我有其他地圖包含相同的球迷。 – Emad

+0

@ Emad4U:爲什麼* *有意義? –

+1

,因爲那是我要求做的。 – Emad