我是C ++的初学者。请考虑以下C ++字符串的定义
std::string str(10, 0); // str needs to be fixed size throughout its lifetime
str = "abcdefgh"; // could be underfilled
让字符串的长度为n。我需要将最后的k个字符(< n)移动到字符串的头部。一旦我把它移到头部,我不关心这个k子串之后的内容。但是,我希望我的字符串的大小保持固定,并希望在不必分配任何临时字符串的情况下执行此操作。
std :: string:replace()可以帮助我做到这一点,但将str作为字符串参数传递给str.replace()是否安全?
另一种选择是做这样的事情
str = str.substr(/* last k chars */) + str.substr(/* don't care */)
此行是否就地更新了str?如果是这样,它是否仍然保持我构造它的长度?