正在从二进制文件读取到vector.c++



如何从二进制文件(字节,在C++中也称为无符号char(读取到跳过第一个值的向量,因为第一个值也是向量的大小,所以第一个值是无符号int 32

第一个值也是整个文件的大小。

你可以试试这样的东西:

uint32_t data_size = 0;
data_file.read((char *) &data_size, sizeof(data_size));
std::vector<uint8_t> data(data_size);
data_file.read((char *) &data[0], data_size);

上面的代码片段首先从文件中读取数据的大小或数量
使用读入的数量值创建std::vector
最后,将数据读入矢量。

编辑1:内存映射文件
您可能需要考虑将数据文件作为内存映射文件打开。这是操作系统将文件视为内存的地方。您不必将数据存储在内存中,也不必读取数据。由于内存映射文件API因操作系统而异,因此您必须搜索操作系统API以了解如何使用该功能。