そのサンプルソースを入手しました:
std::string tmp1;
std::string tmp2 = "Test";
while(1)
{
tmp1 += tmp2;
}
tmp1 が tmp2 のコンテンツを取得し、各ループで文字列の末尾に「Test」が追加されていることがわかります。これはstrcat()に似ているはずですが、 strcat は C 関数であり、C 関数realloc()を持っています。
std::string は文字列の連結をどのように実装しますか? ある種のメモリの再割り当てを使用しますか? はいの場合、C++ で再割り当てするにはどうすればよいですか?