我正在構建一個簡單的神經網絡,我有兩個主要分類:神經網絡和級別。我沒有神經元,因爲它是一個簡單的餵食者,所有單位在一個水平上共享相同的激活函數。何時刪除複製構造函數
我這樣安排我的水平:(不是指針,值)
類NeuralNetwork有水平的載體,以便快速訪問它們,一流水平的每個對象都有一個指向PREC和下一級,一些矩陣和東西。
更一般的問題是: 什麼複製/移動構造器/賦值操作符組織爲雙級鏈接列表像Level應該做什麼?
複製整個結構,跟隨下一個指針和返回指針,並返回剛纔複製的對象的度數。
複製單級離開指針旁邊\ PREC到nullptr與的矩陣ECC只是複製返回一個單級..
刪除拷貝構造函數/賦值運算符。
你好,歡迎來到StackOverflow。請[編輯]你的問題提供[mcve]來說明你的問題。 – YSC
不管你做什麼,確保沒有不一致的對象存在。第二個選項聽起來像一個不一致的對象,雖然你可以去添加一個bool「is_valid」之類的東西,但是如果結果不可用,爲什麼還要複製呢?我會做以下事情:現在刪除運營商,並實施它,如果你碰巧需要它(我假設刪除你的意思是使它非法使用,而不是刪除代碼)。如果不是,爲什麼浪費時間寫它?特別是因爲如果你刪除它,你的編譯器將不會接受你不打算做的複製任務。節省運行時間和內存。 – Aziuth
以適合您的目的爲準。黃金法則是當對象被破壞時,您需要確保它不會使任何現有對象失效。正確地完成您提出的任何選項都可能是正確的。但是,對所有數據進行深層複製的那個可能適合任何實驗模型,但可能證明在任何大型生產環境中都會有性能開銷。 – Persixty