Qt内存映射「建议收藏」

Qt内存映射「建议收藏」最近在看代码的时候发现了Qt的内存映射,原来只知道MFC有内存映射机制,可以在读取大数据文件时节约读取的时间,原来Qt中也有相应的机制,其用法更简单,下面用一个小例子演示其用法#include#include#include#include#includeint

大家好,又见面了,我是你们的朋友全栈君。

最近在看代码的时候发现了Qt的内存映射,原来只知道MFC有内存映射机制,可以在读取大数据文件时节约读取的时间,原来Qt中也有相应的机制,其用法更简单,下面用一个小例子演示其用法

#include <QtCore/QCoreApplication>
#include <QFile>
#include <QDebug>
#include <iostream>
#include <stdio.h>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QFile file("1.txt");
    file.open(QIODevice::ReadWrite);
    qDebug() << QStringLiteral("内存大小:") << file.size();
    uchar *fpr = file.map(0, file.size());
    int i = 0;
    int x1 = 0, x2 = 0, x3 = 0;
    char *pEnd1 = NULL;
    char *pEnd2 = NULL;
    char *pEnd3 = (char *)fpr;
    for (int i = 0 ; i < 3 ; ++i)
    {
        x1 = strtod(pEnd3, &pEnd1);
        x2 = strtod(pEnd1, &pEnd2);
        x3 = strtod(pEnd2, &pEnd3);

        std::cout << x1 << "," << x2 << "," << x3 << "\n";
    }

    file.close();
    return a.exec();
}

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151691.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小米手机计算机无法归零,小米体脂秤不归零怎么调

    1、放平体重秤秤角。电子体重秤是比较敏感的,所以先确认四个秤脚是否摆放平稳、否有悬空、否有杂物,另外选择坚实的地面;2、移动后数据稳定再称重。第一次称完下来等数据稳定归零后再进行第二次测量;3、关闭忽略30秒之内的称重数据功能。小米体重秤有个选项,会自动忽略30秒之内的称重数据,也就是说前一个人刚称重完,30秒内另一个人站上去,得不到准确的数据。可以选择关闭该功能或者等30秒后再称重;4、重新绑定…

    2022年4月9日
  • 将ipynb转化为pdf_jupyter打开ipynb文件

    将ipynb转化为pdf_jupyter打开ipynb文件将ipynb文件转换为markdownjupyternotebook文件(扩展:ipynb)转换说明转换jupyternotebook文件(扩展:ipynb)使用jupyternotebook转为为markdown文档文件。转换说明执行命名进行转化;文件名有空格推荐:“LinerR.ipynb”方式;LinerR.ipynb种诺是有图片,会自动保存至当前LinerR_f…

    2022年8月29日
  • boost::lockfree使用介绍

    boost::lockfree使用介绍boost::lockfree是boost1.53引入的无锁数据结构,包括boost::lockfree::stack、boost::lockfree::queue和boost::lockfree::spsc_queue三种,前两种用于多生产者/多消费者场景,第三个用于单生产者/单消费者场景,下面对它们的使用进行详细介绍,以boost::lockfree::stack为例,其他类似。构造boo…

    2022年7月19日
  • linux系统下安装软件的命令(在linux下安装win系统)

    rabbitMq是用erlang分布式语言开发的,故需先安装erlang下载erlang的tar包:erlang下载首先连接到linux,切换至root用户,并cd至usr/local目录下,在该目录下使用如下命令新建erlang文件夹cd/usr/locallsmkdirerlang使用如下命令给文件夹授权//给local赋予读写权限chmod777local/…

    2022年4月11日
  • k8s(七)Pod调度[通俗易懂]

    k8s(七)Pod调度[通俗易懂]k8s概述定向调度亲和性调度污点和容忍Pod的调度概述在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足需求,因为很多情况下,我们想控制某些Pod到达某些节点上,那么应该怎么做?这就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式。自动调度:运行在哪个Node节点上完全由Scheduler经过一系列的算法计算得出。定向调度:NodeName、NodeS

    2022年8月11日
  • pandas的连接函数concat()函数「建议收藏」

    pandas的连接函数concat()函数「建议收藏」pd.concat(objs,axis=0,join=’outer’,join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False,copy=True)参数含义objs:Series,DataFrame或Pa…

    2022年6月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号