次のコードに出くわし、頭の中でいくつかの疑問が生じました
std::vector<unsigned char> buf(bytes.constData(), bytes.constData() + bytes.size());
where bytes is QByteArray
とbytes.constData()
returnconst char*
ここでベクターのコンストラクターについて調べましたが、この説明に適していると思われる唯一のコンストラクターは
vector (InputIterator first, InputIterator last,
const allocator_type& alloc = allocator_type());
今私の質問は:
1-ベクターの反復子にポインターを渡すことは可能ですか? なぜbytes.constData() + bytes.size()
ですか?たとえば、後でバイトに変更を加えた場合、これはコピーを作成しますか? buf に影響しますか?