在C/C++中,我可以在一个线程中分配内存并在另一个线程中删除它.然而,每当从堆请求内存时,堆分配器需要遍历堆以找到适当大小的空闲区域.两个线程如何在不破坏堆的情况下有效地访问同一个堆?(这是通过锁定堆来完成的吗?)
我正在尝试使用以下代码学习如何在窗口化应用程序中序列化QMap对象:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>
#include <QString>
#include <QDataStream>
#include <QMap>
#include <QDebug>
void write ()
{
QString filename = "Z:/snippets.txt";
QFile myFile (filename);
if (!myFile.open(QIODevice::WriteOnly))
{
qDebug() << "Could not write " << filename;
return;
}
QMap<QString,QString> map;
map.insert("one","this is 1");
map.insert("two","this is 2");
map.insert("three","this is 3");
QDataStream out (&myFile);
out.setVersion(QDataStream::Qt_5_3);
out<<map;
myFile.flush();
myFile.close();
}
QMap<QString,QString> read ()
{
QString filename = "Z:/snippets.txt";
QFile myFile (filename);
QMap<QString,QString> map;
QDataStream in (&myFile);
in.setVersion(QDataStream::Qt_5_3);
if (!myFile.open(QIODevice::WriteOnly))
{
qDebug() << …Run Code Online (Sandbox Code Playgroud)