C++ string::reserve的用法

C++ string::reserve的用法,c++,string,C++,String,什么时候使用string::reserve合适? 我意识到它是用来为字符串保留一定数量的字符的,但是这怎么有用呢?如果你翻过,字符串是否仍然会调整大小?它是否增加了效率级别?它将保留指定的空间以减少重新分配的次数。如果您对字符串的大小有很好的了解,那么保留一定的空间应该可以防止任何重新分配 如果您查看,它将调整大小,但其目的是减少重新分配的数量。它将保留指定的空间以减少重新分配的数量。如果您对字符串的大小有很好的了解,那么保留一定的空间应该可以防止任何重新分配 如果你看一下,它会调整大小,但目的

什么时候使用string::reserve合适?
我意识到它是用来为字符串保留一定数量的字符的,但是这怎么有用呢?如果你翻过,字符串是否仍然会调整大小?它是否增加了效率级别?

它将保留指定的空间以减少重新分配的次数。如果您对字符串的大小有很好的了解,那么保留一定的空间应该可以防止任何重新分配


如果您查看,它将调整大小,但其目的是减少重新分配的数量。

它将保留指定的空间以减少重新分配的数量。如果您对字符串的大小有很好的了解,那么保留一定的空间应该可以防止任何重新分配


如果你看一下,它会调整大小,但目的是减少重新分配的次数。

这有点像char str[50]=“my string”;,除了包装在字符串容器中之外,如果超过50个字符,还可以使用一种机制重新分配字符串类附带的所有其他实用程序。它还可以减少堆的碎片。如果您使用固定大小(通常足够大)分配和释放大量字符串,这意味着在释放第一个字符串后,下一个字符串可以轻松重用该块。这有点像char str[50]=“my string”;,除了包装在字符串容器中之外,如果超过50个字符,还可以使用一种机制重新分配字符串类附带的所有其他实用程序。它还可以减少堆的碎片。如果您使用一个通常足够大的固定大小来分配和释放大量字符串,这意味着在释放第一个字符串后,下一个字符串可以很容易地重用该块。