コピーオンライトセマンティクスのメリット
コピーオンライトにはどのようなメリットがあるのでしょうか。当然、私は個人的な意見を期待していませんが、それが技術的かつ実用的に有益な方法で具体的な方法で実際に利用できる実際のシナリオです。そして、具体的には、&文字の入力を節約する以上のものを意味します。 明確にするために、この質問はデータ型のコンテキストにあります。割り当てまたはコピーの構築は暗黙的な浅いコピーを作成しますが、変更すると暗黙的なディープコピーが作成され、元のオブジェクトではなく変更が適用されます。 私が尋ねている理由は、COWをデフォルトの暗黙の動作として使用することのメリットを見つけられないようです。多くのデータ型に対してCOWが実装されているQtを使用します。実際にはすべて、動的に割り当てられたストレージがいくつかあります。しかし、それは実際にユーザーにどのようなメリットがありますか? 例: 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 …