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 回答