これは簡単に実行できますが、正しく実行するのは難しいようです。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);
これは機能しますが、気分が悪いです。-1 と +1... 変ですよね。
最後の文字にコピーする正しい方法は何ですか?