私はC++プログラミングのより高度な側面のいくつかについて比較的新しく、C++でメモリを割り当てることが真に必要な場合(malloc、newなどを問わず)、問題を理解しています。たとえばCでは、動的に配列された配列やその他のタスクを持つためにメモリを割り当てる必要があることを理解しています。 C++では、そうではないようですが、std :: vector、std :: string、またはすでに設計によって動的にサイズ設定されている他の組み込みメソッドを使用することができます。私はまた、割り当てられたメモリへのアクセスがスタックと比較して遅いことを理解しています。C++:手動でメモリを割り当てることは絶対に必要ですか?
だから、C++でメモリを割り当てる必要があるのですが、そうであればその時代の例は何ですか?これにはもちろん、C++コードとCプログラムとの対話が必要な時は含まれません。プログラムが純粋にC++で書かれているとしましょう。
編集:混乱を緩和しようとすると、ベクターや他の構造が独自のメモリを割り当てていることは理解していますが、これはシーンの裏で起こるもので、プログラマが新しいmallocなどを使用する必要はありません。自動的にクリーンアップされます。だから私が本当に思っているのは、C++で手動でメモリ管理を行う必要があるのかどうかです。
'std :: vector'は、動的に割り当てられた配列(通常は"ヒープ "の上)の裏側を管理していることに気付きましたか? –
'vector'が自動的にメモリを割り当てるとき、それは"メモリを割り当てる "と数えられないと言っているように読みます。あれは正しいですか?明示的に 'new' /' delete'を使う必要があるかどうか尋ねていますか? –
@DrewDormannそうです。私はその点を明確にするために質問を編集しました。 –