string x,y; N=0; x.resize(0); に対して

x+=y;
と
memcpy(&x[N],&y[0], y.size()); N+=y.size;

は同じのはず
yがバイナリデータだと上が失敗することが多いです