[C ++]ベクトルメモリ処理

先週のヘルプの人々に長い時間のためのコードに手を触れない、との結果がベクトルメモリの取り扱いを記録するために、ここで使用されたベクターの多くではありませんでしたので、メイクを行い、いくつかのアルゴリズムC ++を実装します。通常の状況下では、合理的なヘルプベクトルを必要としないでください、しかし、ノードがより多くの時間になったときのアルゴリズムを描画する場合は特に、あなたはそれを処理するために、そしてあまりにも多くの描画を回避する必要があります。

 晴れ() 

実際には、唯一の明確な要素を削除、またはそのリンクベクトルと、これらのデータは削除し、メモリをクリーンアップしませんでした。

この時点では機能は便利ですがあります:

 shrink_to_fit() 

名前が示すように、それは自動的にサイズに合わせて縮小される、ちょうど明確後のベクターはまた、メモリをクリーンアップしますもう一度この関数を呼び出した後、空になっています。


テストへのコードを使用します。

    std ::ベクトル< 整数 > test_clear。
    裁判所未満 << " 開始:\ nは" ; 
    COUT << test_clear.size()<< ENDL。
    COUT << test_clear.capacity()<< ENDL。
    test_clear.push_back(10000 ); 
    裁判所未満 << " add_elementます:\ n " ; 
    COUT << test_clear.size()<< ENDL。
    COUT << test_clear.capacity()<< ENDL。
    test_clear.clear(); 
    裁判所未満 << " をクリアした後:<< test_clear.size()<< ENDL。
    COUT << test_clear.capacity()<< ENDL。
    test_clear.shrink_to_fit(); 
    裁判所未満 << " シュリンク後の\ nは" ; 
    COUT << test_clear.size()<< ENDL。
    COUT << test_clear.capacity()<< ENDL。

あなたは(メモリサイズを移動していなかっただけでサイズを変更する明確な)同じ期待して、最終的な結果を見ることができます:

 

おすすめ

転載: www.cnblogs.com/wayne-tao/p/12586158.html