在fread中从int []转换为std :: array?

时间:2012-11-20 06:49:24

标签: c++ c++11 std

我想知道并且没有找到任何建议,关于如何将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];

1 个答案:

答案 0 :(得分:7)

读入第一个元素数组的基础数据块的地址应该有效:

fread(stdarr.data(), sizeof(int), stdarr.size(), fp);