如果我有地圖std::map<std::string, Person>
類型的地方Person
是我定義的類,下面是我怎麼會在迭代it
訪問Person
:C++地圖與值是一個指針
it->second;
但如果地圖類型爲std::map<std::string, Person*>
,在這種情況下該元素將是指向Person
的指針,而不是實際的Person
。我將如何訪問Person
?例如,這是正確的:
*it->second;
或者是這樣的:
it->*second;
謝謝!
'*它 - >秒'。但你不應該這樣做。如果價值語義不適合你,那麼使用'unique_ptr'或'shared_ptr ',這取決於什麼樣的所有權被指示。 –
他們爲什麼不應該這樣做? – PunDefeated
嗯,我想我的代碼一直有問題,因爲按值傳遞會導致複雜的問題,所以我想如果我開始傳遞指向對象的指針並存儲這些指針,那麼我可以避免任何情況在其中複製會導致數據不正確。 – CreasyBear