如何深度复制QMap和其他Qt容器

Fre*_*Ben 8 c++ qt qt4 deep-copy qmap

一般来说,深度复制Qt容器的正确方法是什么?我并不担心递归地深度复制容器,尽管解决这些问题会有所帮助.

kra*_*lyk 18

尽管每个人都会告诉你 - 你没有深度复制Qt容器 - 但在某些情况下你只需要执行一个实际的深拷贝而不仅仅是浅拷贝.为此,请使用detach():

container1 = container2;
container1.detach();
Run Code Online (Sandbox Code Playgroud)

  • @ cmannett85就在昨天,我需要做到这一点.我有两个线程,一个通过通道接收数据(类似于套接字),处理数据并将其存储在几个容器中.另一个线程通过定期检查新数据来呈现数据.如果有新数据,它会锁定互斥锁并从某些容器复制数据 - 这是我需要深层复制的地方.如果我没有执行深层复制,当数据处理线程修改它们时,将分别对每个容器进行锁定,这会降低性能. (3认同)