C++读取大型矩阵问题

本文讨论了如何使用C++高效地读取大型浮点数矩阵,对比了fstream格式化读取和scanf的性能,并采用了内存映射文件的方法。针对50×71028的矩阵,通过自定义myatof函数实现了15秒内完成读取。
摘要由CSDN通过智能技术生成


之前写了个opencv读取大矩阵的问题,这次遇到一个更大的矩阵,不想用opencv格式化读文件,故直接采用c++读取。

首先c++读取文件的几种方式可以参考“探寻C++最快的读取文件的方案”(1)一文,而其中提到的内存映射方法可以参考“windows笔记-内存映射文件”(2)一文。

输入对象是一个50×71028的浮点数矩阵,保存为.txt文件,共55mb,单纯采用fstream格式化读取需要1分钟,而采用scanf读入需要15秒。故决定采取文(1)中介绍的读入整个文件再处理的方法,代码如下:

int main()
{
	int start = clock();	
    readdata1();
    pr
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值