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();
}

这里写图片描述

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • bytebuf详解_byte int

    bytebuf详解_byte int@author鲁伟林记录《Netty实战》中各章节学习过程,写下一些自己的思考和总结,帮助使用Netty框架的开发技术人员们,能够有所得,避免踩坑。本博客目录结构将严格按照书本《Netty实战》,省略与Netty无关的内容,可能出现跳小章节。本博客中涉及的完整代码:GitHub地址:https://github.com/thinkingfioa/netty-learning/tre…

  • hackbar 的简单使用

    hackbar 的简单使用https://www.cnblogs.com/wayne-tao/p/11027650.html前言:hackbar是web渗透时的经典工具,但是当我开始学习网络安全的时候,发现hackbar已经开始收费了。本篇抛砖引玉介绍几个使用方法,针对火狐浏览器的。建议与https://www.cnblogs.com/wayne-tao/tag/DVWA/一起学习。1.安装:一、Maxh…

  • Mysql覆盖索引_mysql索引长度限制

    Mysql覆盖索引_mysql索引长度限制如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表。只扫描索引而无需回表的优点:    1.索引条目通常远小于数据行大小,只需要读取索引,则mysql会极大地减少数据访问量。    2.因为索引是按照列值顺序存储的,所以对于IO密集的范围查找会比随机从磁盘读取每一行数据的IO少很多。    3.一些存储引擎如myisam在内存中只缓存索引,数据则依赖于操作…

  • 电脑日语输入法打不了假名_华为输入法日语片假名

    电脑日语输入法打不了假名_华为输入法日语片假名换了个电脑装日语输入法,一直只能输英文字母打不了字,记录下解决方法。选语言首选项日本语->选项微软输入法->选项高级设置将下面的罗马字输入改为假名输入即可也可以选日英文混合,把下面都勾上,可以日文英文切换,比较方便。之后可以看到输入法旁边有个小假名,直接输入就可以了 こんにちは…

  • rpc服务器不可用 dcom 无法使用任何配置的协议与计算机,如何修复Windows上的“RPC服务器不可用”错误?…

    rpc服务器不可用 dcom 无法使用任何配置的协议与计算机,如何修复Windows上的“RPC服务器不可用”错误?…问题:如何修复Windows上的“RPC服务器不可用”错误?有几次我的计算机上出现“RPC服务器不可用”弹出窗口。我不确定它是什么?我该怎么办这个错误?方法/步骤1“RPC服务器不可用”是在任何版本的操作系统上可能出现的Windows错误。它出现在屏幕上的原因有很多,但在大多数情况下,问题与系统通信问题有关。RCP是RemoteProcedureCall的缩写。[1]它是一个允许不同进程之间进…

  • java按位取反运算符_java源码补码

    java按位取反运算符_java源码补码一直纠结于位运算中的按位取反以及原码、反码、补码之间的各种关系,反正各种混淆各种懵逼。经过一小段时间才弄明白这个别人觉得很容易的问题。可能还是我基础不太好。位运算是对操作数以二进制为单位的进行的运算,位运算符则用于位运算。位运算符包括&(按位与)、|(按位或)、^(按位异或)、~(按位取反)等等…位运算符操作数可以是整型或字符型,结果为整型。按位取反是对补码进行运算,当运算完后,再将补…

发表回复

您的电子邮箱地址不会被公开。

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