vectorのassign()の使い方についての質問です。

2次元配列array2dに要素nx、nyを割り当てるとき
array2d.assign(nx, vector<double>(ny));
3次元配列array3dに要素nx、ny、nzを割り当てるとき
array3d.assign(nx, vector< vector<double> >(ny, nz);

というところまでは出来たのですが‥
4次元配列で同じことをやるにはどうしたら良いでしょうか?
array4d.assign(nx, vector< vector< vector<double> > >(ny,(nz,t)));
としても要素が割り当てられませんでした。

どうかご教授をお願いします。