問題タブ [shallow-copy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
18121 参照

c# - ハッシュセットの浅いコピー

それを行うための最良の方法は何ですか?

このようなforeachでセットをトラバースします。

または、このようなユニオンのようなものを使用します。

0 投票する
3 に答える
4520 参照

c# - EntityObject のサブクラスの浅いコピー/クローンを作成する

データベースに監査テーブルがあり、更新時に古い値と新しい値が XML にシリアル化され、同じ行に格納されます。オブジェクトは現在、次のようにディープ クローンされています。

これは機能しますが、ディープ クローンから引き出された関連レコードが原因で膨大な量のデータが生成され、DB から数十万回の読み取りが行われdcSer.WriteObject(memoryStream, obj)、最終的な MemoryStream サイズは約 200MB になり、書き込まれるデータの量は言うまでもありません。 DBに戻ります。理想的ではありません。

したがって、代わりにメンバーごとのクローンを作成したいと思います。メンバーごとのクローンはオブジェクト参照を除外し、関連するすべての Entity Framework モデルをコピーしないようにすることを理解しています。

だから私はこれをしました:

EntityObjectしかし、着信の実際のタイプはテーブル自体に関連するサブクラスであるため、無効なキャスト例外が発生します。

また、拡張メソッドを使用して にアクセスしようとしましたMemberwiseClone()が、拡張メソッドは保護されたメソッドにアクセスできません。

では、ジェネリック EntityObject の浅いコピーを作成するにはどうすればよいでしょうか?

0 投票する
2 に答える
150 参照

c++ - コンストラクターC ++の奇妙な動作をコピーしますか?

こんにちは、配列を含むクラスがあります。これをクラス コンストラクターに渡しません (ここで問題が発生する可能性がありますか?)。配列はクラスで定義され、読み取りメソッドで初期化されます。

しかし、主に次のようなクラスのインスタンスを作成します。

次に、次のようにします。

ここで、次のような最初のクラス インスタンスでバブル ソート メソッドを使用します。

これらのインスタンスの両方を並べ替え後にテキストに書き出すと、両方とも並べ替えられますか?

浅いコピーと深いコピーを読みましたが、浅いコピーの後に呼び出されたメソッドが両方ともソートされる理由がわかりませんか? これは予想される動作ですか?

もう少し情報:

私のクラスでは、配列を次のように定義します。

次に、書き込みメソッドで5つの要素を書き込みます。これを行うより良い方法はありますか?ただし、メソッドを使用して初期化する必要があります。

0 投票する
2 に答える
3106 参照

c# - c#ではArray.ToArray()はDEEPコピーを実行しますか?

これはかなり基本的な質問のはずですが、明確な答えを見つけるのに少し苦労しています。

値の配列があり、.ToArray()メソッドを使用すると、配列の深いコピーまたは浅いコピーが作成されますか?

0 投票する
2 に答える
16844 参照

c++ - 二分木のディープコピーコンストラクタ

C++でバイナリツリーデータ構造のディープコピーを作成しようとしています。問題は、私が使用しているコードが浅いコピーを提供しているように見えることです(これは私のデコンストラクターに問題を引き起こすようです)。

以下のコードは私の二分木コピーコンストラクターです:

どんな助けでもいただければ幸いです。ありがとう

これがメモリ例外をスローするデコンストラクタです(これは私が上で行った浅いコピーのためだと私は信じています)

0 投票する
0 に答える
248 参照

c++ - オクターブ C++ API での浅い行列の構築

オクターブの C++ API でデータ + サイズへのポインタからマトリックスを構築する方法はありますか (つまり、ディープ コピーを使用しない)? おそらく、呼び出し元が対応するメモリを管理しなければならない文書化されていない安全でない方法、またはポインタをデータに割り当てる方法ですか? 私が見つけた唯一のものはdMatrix.hのメソッドでしたが、それは非公開です:

Array.h と同様に、データへのポインタは非公開のようです。

0 投票する
0 に答える
391 参照

c# - カスタム C# オブジェクトの浅いコピー

私は C# で書かれたいくつかのコードに取り組んでいます。このアプリでは、カスタム コレクションを次のように定義しています。

データベースにクエリを実行して ResultList にデータを入力した後、それをメモリ内キャッシュに格納しています。これにより、毎回データベースにアクセスする必要がなくなります。このアプローチは初めて機能します。ただし、後続のロードでは、キャッシュからプルされる ResultList が更新されているため、機能しません。ディープコピーが発生しているためと思われます。

ResultList の浅いコピーを取得するにはどうすればよいですか?

0 投票する
2 に答える
335 参照

c++ - いくつかの例外を除いて、コピー コンストラクターを防ぐことはできますか?

私が使用しますstd::map<int, A>

Aはクラスなのでシャローコピーを防がなければならないのですが、 みたいなクラスが多いAので、ディープコピーの構文や演算子を作るのは面倒です。コピーコンストラクタとコピー代入演算子は使わなくてもいいようなので使わないことにします。

ミスを防ぐために、private コピーコンストラクタとコピー代入演算子を持つ UnCopyable クラスを作成し、A継承しました。

ただし、問題が 1 つあります。std::mapコピー コンストラクターを使用します。

Aのポインターをマップに保存したくありません。

より良い解決策は何ですか?

0 投票する
1 に答える
90 参照

c# - デリゲートからデリゲートを構築します。新しいデリゲートは何を指していますか?

次の点を考慮してください。

a2 は何を指していますか? それは a1 ですか、それとも a1 の浅いコピーですか、それとも a1 の深いコピーですか?

0 投票する
1 に答える
5652 参照

java - JGIT を使用した浅いクローン

どうすればいいの

JGITライブラリで?