операций, которые увеличивают размер строки, вы можете избежать многократного перераспределения строки в памяти, сразу установив для строки необходимую ей емкость:
#include
#include
#include // для rand() и srand()
#include // для time()
using namespace std;
int main()
{
std::srand(std::time(nullptr)); // инициализация генератора случайных чисел
string sString{}; // длина 0
sString.reserve(64); // резервируем 64 символа
// Заполняем строку случайными строчными буквами
for (int nCount{ 0 }; nCount < 64; ++nCount)
sString += 'a' + std::rand() % 26;
cout << sString;
}
Результат этой программы будет меняться каждый раз. Вот результат одного выполнения:
wzpzujwuaokbakgijqdawvzjqlgcipiiuuxhyfkdppxpyycvytvyxwqsbtielxpy
Вместо того чтобы перераспределять sString несколько раз, мы устанавливаем емкость один раз, а затем заполняем строку. Это может очень влиять на производительность при формировании больших строк с помощью конкатенации.