>>154
swapは必要最小限のメンバ交換だから、
それ以上の処理をすることは無いんじゃないかな。

>>155
newの裏にいるmallocが再利用するために持ってるだけだと思う。
stringのデストラクタは呼ばれてるはずなので。
↓でも1GB確保しっぱなしになる?

//※テストコードなので例外安全とか無視。
std::vector< std::vector<std::string>* > xv;
for(int i=0;i<100;i++){
    xv.push_back( new std::vector<std::string>(100) );
    std::vector<std::string>& x = xv.back();

    for(int n=1;n<100;n++){
        x[n].resize(100*1024);
    }
    x.resize(1);
}
std::cout << "A" << std::endl;
getchar();

for(int i=0;i<100;i++){
    delete xv[i];
}