这很容易做到,但似乎很难正确做到。让我们假设 l 是 size()/2。我想将 sz 的后半部分插入 szout。
我的第一次尝试是
szout.insert(szout.end(), &sz[l], sz.end());
但是我得到了一个很大的编译错误。接下来我尝试的是
szout.insert(szout.end(), &sz[l], &sz[sz.size()-1]);
不,错过了最后一个字母。所以显然我不应该-1
szout.insert(szout.end(), &sz[l], &sz[sz.size()]);
这行得通,但这是未定义的行为,因为我正在忽略最后一个字母。
szout.insert(szout.end(), &sz[l], &sz[sz.size()-1]+1);
这有效,但感觉不对。A -1 和 +1 ......这很奇怪。
复制到最后一个字母的正确方法是什么?