【发布时间】:2013-05-23 21:44:18
【问题描述】:
一般来说,深拷贝 Qt 容器的正确方法是什么?我不担心递归地深度复制容器,尽管解决这个问题会有所帮助。
【问题讨论】:
-
上面的代码对我来说很好 - 为什么你认为它不会?
-
@cmannett85 我已经通过 GDB 运行它,发现两个映射都包含“value2”
-
是的,我一开始看错了代码,这个 sn-p 应该可以正常工作。删除我的答案。
-
再一次,不适合我——而且我也在使用 Qt 4.8(准确地说是 4.8.4 x64 Linux)。你能发布你用来测试这个的完整代码吗?
QMap是隐式共享的,但是一旦你修改它,COW 机制就会启动并发生深拷贝(当然忽略QString的隐式共享)。 -
Linux 中的 Qt 5.1 也能正常工作。