写时复制语义的优点
我想知道写时复制有什么优点?当然,我并不期望个人观点,而是希望在实际操作中以切实可行的方式在技术上和实践中受益。实际上,我的意思不只是节省&字符输入。 要澄清的是,此问题是在数据类型的上下文中进行的,在赋值或副本构造中创建一个隐式浅表副本,但对其进行修改会创建一个隐式深表副本,并将更改应用于它而不是原始对象。 我问的原因是,我似乎没有发现将COW作为默认隐式行为的任何优点。我使用Qt,它为许多数据类型实现了COW,实际上所有数据类型都具有一些动态分配的底层存储。但是它如何真正使用户受益呢? 一个例子: QString s("some text"); QString s1 = s; // now both s and s1 internally use the same resource qDebug() << s1; // const operation, nothing changes s1[o] = z; // s1 "detaches" from s, allocates new storage and modifies first character // s is still "some …