std::copy
を2つの異なるイテレータからコピーしようとしています。しかし、実行中にこれらの2つのイテレータは同じ場所を指している可能性があります。なぜこのような状況では、彼らは単一の文字をコピーしません。std :: copyを使用して1文字をコピーする
std::string str1 = "ABC";
std::string::iterator itr1 = str1.begin();
std::string::iterator itr2 = str1.begin();
std::string result;
std::copy(itr1,itr2,result.begin());
「結果」には、コピーしたい文字を格納するのに十分な余裕がなければならないことに注意してください。長さ1で作成するか、その長さにサイズを変更するか、裏インサータを使用する必要があります。 – sbi