私は単純なニューラルネットワークを構築しています.2つの主要なクラス:NeuralNetworkとLevelがあります。私はニューロンを持っていません。それは、同じ活性化機能を共有するレベルのすべてのユニットで簡単なフィードワワードなのでです。コピーコンストラクタを削除するタイミング
私は、このように自分のレベルを組織しました:(ないポインタ、値)
クラスニューラルネットワークは、レベルのベクトルを持っている、高速アクセスのためにそれらとクラスレベルのすべてのオブジェクトがPRECへのポインタを持っており、次のレベル、いくつかの行列やもの。
より一般的な質問は次のとおりです。 レベルのようにダブルリンクリストとして編成されたクラスのコンストラクタ/代入演算子をコピー/移動するものは何ですか?
次のポインターとバックポインターの後に構造全体をコピーし、コピーしたばかりのオブジェクトのアイシャンスを返します。
コピーマトリックスECCの単なるコピーでシングルトンレベルを返すnullptrする\ precの隣にポインタを残して、単一のレベル..
コピーコンストラクタ/代入演算子を削除します。
こんにちは、歓迎、StackOverflowへ。あなたの質問を[編集]してあなたの質問を説明する[mcve]を提供してください。 – YSC
何をしても、一貫性のないオブジェクトが存在しないことを確認してください。 2番目のオプションは、一貫性のないオブジェクトのように聞こえますが、bool "is_valid"などを追加することもできますが、結果が使用できない場合はコピーを許可する理由もあります。私は次のことをやっています:今のところ演算子を削除し、それを実装する必要があります(私はあなたが削除することは、コードを削除することではなく、違法にすることを意味すると仮定します)。そうでなければ、なぜそれを書くのに時間を費やすのだろうか特にそれを削除すると、コンパイラはあなたが意図していないコピーの割り当てを受け付けなくなります。ランタイムとメモリを節約します。 – Aziuth
いずれかの目的に適しています。ゴールデンルールは、オブジェクトが破壊されたときに、既存のオブジェクトを無効にしないようにする必要があるということです。正しく行われたオプションのいずれかが正しいと思われるかもしれません。しかし、すべてのデータを深くコピーしたものは、おそらくどの実験モデルにも適していますが、大きなプロダクション環境ではパフォーマンスオーバーヘッドがあることがわかります。 – Persixty