一般而言,深度複製Qt容器的正確方法是什麼?我並不擔心以遞歸方式深度複製容器,儘管解決此問題會有所幫助。如何深度複製QMap和其他Qt容器
回答
儘管每個人都會告訴你 - 你不深刻複製Qt容器 - 有些情況下你只需要執行實際的深層複製而不是淺層複製。要做到這一點,請使用detach()
:
container1 = container2;
container1.detach();
太棒了。這就是答案 –
你能否舉一個你什麼時候需要這樣做的例子?當你修改'container1'時,它會執行深層複製,如果你不修改它 - 你爲什麼要複製它!? – cmannett85
@ cmannett85就在昨天,我需要做到這一點。我有兩個線程,一個通過通道接收數據(類似於套接字),處理數據並將其存儲在幾個容器中。另一個線程通過定期檢查新數據來呈現數據。如果有新數據,它會鎖定一個互斥並從一些容器複製數據 - 這是我需要深度複製的地方。如果我沒有執行深度複製,則在數據處理線程修改它們時,會分別爲每個容器執行鎖定,這會降低性能。 – kralyk
- 1. Qt的QMAP和的QList速度
- 2. 如何深度複製NSMutableURLRequest?
- 3. 如何深度複製
- 4. 嵌套QMAP QT
- 5. 的Qt:在QMAP
- 6. 如何創建位圖深度複製
- 7. 如何在Ruby中深度複製Proc?
- 8. 如何深度複製NSDictionaries的NSArray?
- 9. 如何深度複製DateTime對象?
- 10. 如何執行Objective-C深度複製
- 11. 向量迭代器在深度複製向量時不兼容
- 12. 數據庫和深度複製
- 13. 如何將qmap從qt傳遞給javascript?
- 14. Qt容器的大小:QMap比Qlist大得多嗎?
- 15. GWT覆蓋深度複製
- 16. Ruby:對象深度複製
- 17. 鏈式Java深度複製?
- 18. elisp的深度複製 - consing
- 19. 深度複製陣列
- 20. 深度複製Java中
- 21. Python C APi深度複製
- 22. S4對象深度複製
- 23. 功能深度複製
- 24. 深度複製嘗試
- 25. 深度複製散列表
- 26. 如何複製但不是深度複製網絡圖?
- 27. Qt的foreach表達式需要深度複製嗎?
- 28. 深度複製何時發生在QList?
- 29. 複製/深度複製和變量範圍
- 30. 我怎樣才能複製和深度複製[] [] []結構
上述代碼適用於我 - 您爲什麼認爲它不會? – cmannett85
@ cmannett85我已經通過GDB運行它,並看到兩個地圖都包含「value2」 –
是的,我最初誤讀了代碼,這段代碼應該可以正常工作。刪除我的答案。 –