Да, вы можете повторно использовать одну и ту же переменную для нескольких целей одну за другой. Но на самом деле я не рекомендую вас, программа будет немного запутанной, если вы будете использовать только одну переменную для многократного использования.
Класс std::string
автоматически выделяет требуемую память в байтах для хранения строкового литерала и перераспределяется при изменении строки.
Например:
#include <iostream>
std::string a = "hello"; // global a, allocates the required memory
int main(void) {
std::string a = "world"; // local a, allocates the required memory
::a = "hello changed"; // accessing global a (reallocates memory)
std::cout << a << std::endl; // local a
}
Тем не менее, нет проблем использовать его дважды и чаще. Но позаботьтесь о своем коде и убедитесь, что он правильно очищен перед вторым или n-м использованием.