Эта небольшая статья в первую очередь предназначена для начинающих C++ программистов, которые либо слышали об умных указателях, но боялись их применять, либо они устали следить за new-delete. UPD: Статья писалась, когда C++11 еще не был так популярен. Итак, программисты С++ знают, что память нужно освобождать. Желательно всегда. И они знают...
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
fxsaber さん 2018.12.01 11:15
スーパーブレーキデザイン100万行の40Mbのファイルを読むのに18秒かかる。
同じ出力結果でも、やり方が違う
すでに0.5秒で終了しています。
auto_ptr (廃止予定) の単純な対応版。注:全く類似していない、である。
...
https://habr.com/post/140222/
pavlick_
operator=に冒頭の1行を追加する必要があります。
こんな感じに限定した方がいいかもしれませんが(コピーは一切できません)。
なぜ、auto_ptrのコピーにしたのか?スタックオブジェクトをCArrayObjに コピーするには、コンストラクタを何度も呼び出してオブジェクトを大量に作成する必要があるため、µlの曲率のせいです。でも、それに見合うだけの価値があるとは思えません。この点、最初の投稿は取り下げます。なぜ、auto_ptrのコピーにしたのか?スタックオブジェクトをCArrayObjにコピーするには、コンストラクタを何度も呼び出してオブジェクトを大量に作成する必要があります。
また、なぜ「μlの曲率」なのでしょうか?
また、なぜ「μlの曲がり角」なのでしょうか?
スタックオブジェクトのコピーを配列に追加するという些細な作業は、デフォルトのコンストラクタを追加することですが、これはそもそも必要ないことでした。
致命的ではない、そう、Qでinit()をすれば、少しは問題がスムーズになるのだが、それでも-嫌な感じだ。また、手元でauto_ptrをコピーする場合、すべてが2行で行われますが、その労力に見合うだけのゲームにはなっていません。おそらく、こだわりすぎ、完璧主義なのでしょう。
スタックオブジェクトのコピーを配列に追加するという些細な作業が、こうなることが判明 + デフォルトコンストラクタを規定する必要があるが、これは全く必要なかった。
致命的ではない、そう、Qでinit()をすれば、少しは問題がスムーズになるが、それでも嫌なものだ。また、手元でauto_ptrをコピーする場合、すべてが2行で行われますが、その労力に見合うだけのゲームにはなっていません。おそらく、こだわりすぎ、完璧主義なのでしょう。
しかし、C++でも全く同じなので、なぜ曲がったmcl.が出てくるのかはよくわかりません。
また、あなたの場合、コピーコンストラクタを指定して、一行で要素を追加する方が簡単です。
ar.Add(new Q(q));
スタックオブジェクトのコピーを配列に追加するという些細な作業が、こうなることが判明 + デフォルトコンストラクタを書く必要があるが、全く必要ないことが判明。
致命的ではない、そう、Qでinit()をすれば、少しは問題がスムーズになるが、それでも嫌なものだ。また、auto_ptrをコピーしているときは、すべてが2行で行われますが、その労力に見合うだけのゲームにはなっていません。おそらく、こだわりすぎ、完璧主義なのでしょう。
そうやって、auto_ptrの後ろに隠れているだけなのです...。
ここでは特別な問題はないと思います。
C#のようにメモリを自動的に削除するようなやり方は、古株の私としてはとても嫌なのです。私の考えでは、オブジェクトの削除を依頼した人が責任を負うべきであり、一部の「ゴミ収集人」が責任を負うべきものではありません。
しかし、C++でも全く同じなので、なぜmclが曲がっているのかがよくわからない。
また、あなたの場合、コピーコンストラクタを指定して、1行で要素を追加する方が簡単です。
どう同じなのでしょうか?そこには自動的にコピーコンストラクタがあり、すべての操作はルックを持つことになる。
また、あなたの場合、コピーコンストラクタの設定と要素の追加を一行で行う方が簡単です
もちろん、例えばおもちゃのクラスで、現実にはデータもある程度、おそらく大量にあるのだから、コピー用のコンストラクタを書くという選択肢は全くない。ラッパーで適材適所を包み、カスタムコンストラクタは不要。
つまり、auto_ptrの後ろに隠されているだけで全ては起こるのです...。
ここは特に問題ないと思います。
C#のようにメモリが自動的に削除される方式は、古株の私としては好きではありません。私の考えでは、オブジェクトの削除を依頼した人が責任を持つべきで、どこかのゴミ収集人ではないはずです。
μlでは、スマートポインタはなくても大丈夫です。ゴミ収集器 !=スマートポインタ、少なくとも例外があるからなくても困らない。私自身、ゴミ収集係は好きではありません。