istream の内容を vector にコピーする
ifstreamからバイト列を読み込みvectorに代入するときの方法です。
よく「アレ?どう書くんだっけ?」と忘れるので、メモしときます。
(a)
// ifstream fi; istreambuf_iterator<char> begin(fi); istreambuf_iterator<char> end; vector<char> data(begin, end);
(b)1行で書くとき
vector<char> data((istreambuf_iterator<char>(fi)), (istreambuf_iterator<char>()));
(c)関数にするなら
void Copy(std::istream strm, std::vector<char> &output) { output.assign((istreambuf_iterator<char>(strm)), (istreambuf_iterator<char>())); }
b,cの1番目の引数(istreambuf_iterator