のバイト範囲を交換する: [1,1,1,9,9,9,1,1,1]STD関数はIバイト(スタンダード::ベクトル)のベクトルを有するベクトル
Iバイト3〜6を未知の長さのバイトで置き換えたいとします(実行時obvでわかります)。 ベクトルの長さが伸びたり、シークしたり、同じままになることがあります。 しかし、私は置き換えたいバイトの開始点と終了点を知っています。
私は消去または挿入を使用してサイズを調整し、次に新しいデータを古いデータにループすることでこれを行うことができます。
std :: replaceは、バイトと一致する検索と置換を行いますが、置き換えたいバイトはわかります。そしてstd :: replaceは1つの要素だけを置き換えるようです。私はデータのBLOBに置き換えたいです。
確かにこれを「きれいに」行うことができる標準機能がありますか? (私が望むなら、私はあなたをシャイリーに電話します)。
あなたはコンパイル時に知ってどのくらい?あなたはベクトルの元の内容を知っていますか?少なくともサイズは?または少なくとも挿入する前に削除する必要がある範囲ですか? –