将二进制文件读取到向量元素的地址中
read binary file into the address of vector element
i有一个二进制文件,其中包含8个字节的双倍。我想将双打阅读到vector<double>
中,请参见下文
ifstream infile("x.dat", ios::binary);
vector<double>data(filesize/8, 0.0);
for(int i=0; i< (filesize/8); ++i)
{
infile.read( (char *) (&data[i]), sizeof(double) );
}
我知道,如果数据是C
数组,但不确定这对vector
是否有效,因为vector
包含的内容比C
阵列(vector
具有方法)更多,是否表示地址&data[i]
表示数据地址ITH元素的成员?
是的,每个向量元素只是一个 double
对象, &data[i]
指向该对象。
实际上,所有double
对象都在连续的数组中,因此您可以立即阅读它们:
infile.read((char*)data.data(), filesize);
当然,如下所述,这需要文件以与您程序的二进制 double
值兼容的格式编写,否则值将是垃圾。
相关文章:
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 为什么两个矢量元素的地址有这么大的差距?
- 如何在 c++ stl 中获取列表中被推回的元素的地址,在常量时间内?
- 循环中的变量被设置为下一个数组的元素始终具有相同的内存地址?
- 指向结构的指针向量的元素具有相同的地址
- 创建一个函数来转换数组元素的类型并返回数组的地址
- 类实例的地址是否等于类中唯一元素的地址
- 存储 std::list 元素的地址;内存
- 为什么这段代码给出错误......'a'是指针到字符指针,应该存储's'的地址,因为s是指向数组的第一个元素的指针
- 直接从指针/地址访问数组的元素
- 获取向量中元素的地址
- 如何在 2D 字符数组中打印 [x][y] 元素的地址?(C++)
- 按地址从矢量中删除元素
- 指针指向数组中的下一个元素,但地址是相同的.如何
- 为什么'std::string'中第一个元素的地址打印为整个字符串?
- 将结构元素地址设置为C 中的null(单链接列表)
- 将特定数组元素的地址传递到函数
- 访问字符串元素地址
- 第一个字符串元素的地址产生意外结果
- 在向量 (C++) 中保留插入元素的地址