私は別のサイトで少しのコードを見ました。私は何が起こっているのかについて微妙に考えています。 C++のベクトル初期化:この構文を使用して実際に何が行われていますか?
は文字通りベクトルが「」作成されたときに何が起こっているか、後でvoid other(int nx, in ny, int nz) {
…
vector<float> A(initvec (nx, ny, nz));
…
}
私がするように明確ではないよベクトル
vector<float> initvec (int nx, int ny, int nz) {
vector<float> data;
for (int i = 0; i < nx * ny *nz; ++i){ // assign data elements with sequential values from 0 to nx*ny*nz-1}
return data;
}
を初期化する関数を考えてみましょう。それは少なくとも不必要なメモリの重複のように思えます。
'data <<(float)i;'はコンパイルすべきではありません。あなたは何か特別なことをするためにオーバーロードされた '<<'を持っていますか? – NathanOliver
[コンパイルしない](http://ideone.com/RHO18j) – PaulMcKenzie
これはすべてここでよく説明されています(http://en.cppreference.com/w/cpp/container/vector) –