質問に対する正確な答えが見つかりませんでした:
cstdlib を使用せずにメモリを再割り当てする唯一の方法は、メモリを解放して再度割り当てることですか? そうでない場合、可能な解決策は何ですか?
前もって感謝します。
質問に対する正確な答えが見つかりませんでした:
cstdlib を使用せずにメモリを再割り当てする唯一の方法は、メモリを解放して再度割り当てることですか? そうでない場合、可能な解決策は何ですか?
前もって感謝します。
おそらく、std::vector (または他のコンテナー) にメモリをロードし、すべての要素を削除し、clear を呼び出してメモリを解放し、その中に新しいアイテムを割り当てて、より多くのメモリを割り当てるときに、std::vector (または他のコンテナー) で行われることを意味しますか? この場合、コンテナ内のメモリが大きくなると、コンテナは必要に応じてメモリを再割り当てすることがあります。
あなたがVectorを作成していると述べたので:
ベクトル実装 (組み込み) がなかったためにこれを行う必要があったプロジェクトでは、一定のメモリ再割り当てを防ぐために、最初に必要な量よりも大きなメモリのセット チャンクを割り当てるのが一般的です。断片化。一般的なスキームは、アプリに「妥当な」サイズを割り当て、制限に達した場合はそのサイズを 2 倍にすることでした。ユーザーがバッファーのサイズを縮小するか、初期化時にサイズを設定するように要求した場合、このヒューリスティックは無視され、要求されたサイズが使用されます。