我是否理解正確并沒有真正的意義
QVector<QSharedPointer<QVariantHash>>
我可以堅持:
QVector<QVariantHash>
由于隱式共享?
老實說,使用 STL,我永遠不會這樣做,并且會擁有std::vector<std::shared_ptr<std::unordered_map<...>>>.
更新:
我的問題是關于性能的。我知道這是存盤物件的不同方式。
uj5u.com熱心網友回復:
不,它們有不同的行為。
仍然是寫時復制,因此向量的QVector<QVariantHash>副本僅在第一次修改之前共享元素,而只要您不理會指標,QVariantHash元素指向的 sQVector<QSharedPointer<QVariantHash>>仍然是相同的物件。
順便說一句,我會避免依賴隱式共享,因為它很容易陷入未定義的行為,指標或參考從你下面失效。
我還要警告不要過度使用共享指標。幾乎總是你可以擁有一件具有獨特所有權的東西,它會分發參考資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/434940.html
上一篇:C 中的QtQdate函式與年份
