3

Cスタイルの整数配列をC++ 11から新しいstd::arrayに変換する方法について、私は疑問に思っていましたが、アドバイスが見つかりませんでした

私は std::array が大好きで、よく使用します。とにかく、バイナリ ファイルからデータを読み込む場合は、値をコピーするために回避します。fread を使用する場合、より簡単な方法はありませんか?

FILE* fp; // initalize not important here
int arr[12];
std::array<int,12> stdarr;
fread(arr, sizeof(int), 12, fp);
for(int i=0; i < 12; i++)
stdarr[i] = arr[i];
4

1 に答える 1

8

最初の要素配列の基になるデータ ブロックのアドレスへの読み取りは機能するはずです。

fread(stdarr.data(), sizeof(int), stdarr.size(), fp);
于 2012-11-20T06:52:18.633 に答える