如何用自己的子字符串替换std字符串的一部分

时间:2016-03-25 05:46:15

标签: c++11 std

我是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?如果是这样,它是否仍然保持我构造它的长度?

0 个答案:

没有答案