私はstd::string
を返すゲッターを持っていて、それをchar array
にコピーしたいと思います。 私の最初の試みは、アプリケーションをクラッシュしていました:std :: copy with return values - "expression:string iterators incompatible"を防ぐより良い方法は?
std::string temp = getString();
std::copy(temp.begin(), temp.end(), array);
一時変数を使用したりする戻り値の型を変更するよりも任意のより良い方法があります:expression: string iterators incompatible
std::copy(getString().begin(), getString().end(), array);
私は一時変数を追加することによってそれを解決しましたポインタ(テストしませんでしたが、これも動作すると思います)?
ありがとうございました!
のイテレータをサポートしている任意のタイプの参照のいずれかを返すことができます。 getString() 'return? –
ベットすると一時的な文字列が返されます。したがって、beginおよびendイテレータは異なる文字列を繰り返しています。 –
@BenSteffanリチャードは、単にオブジェクトのメンバーである 'std :: string'を返します。 – honiahaka10