頻繁に文字列を空にしてから、いくつかの文字を追加する必要があります。std::string::clear() は再割り当て可能性があります std::string::resize(0) は再割り当てを行いますか? 標準の言葉はそれについて何も保証しませんでした。
1749 次
1 に答える
5
これに対する最良の答えは、http://en.cppreference.com/w/cpp/string/basic_string/clearの「メモ」セクションだと思います。
std::vector::clear とは異なり、C++ 標準では、この関数によって容量が変更されないことを明示的に要求していませんが、既存の実装では容量が変更されません。
また、容量が変更されていない場合は、ほぼ確実に、割り当て関数や解放関数が呼び出されないことを意味します。関心のあるすべての実装を調べることを除けば、これがおそらく最善の方法です。
于 2016-10-11T18:01:17.167 に答える