Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyusun peta perpustakaan standard yang besar dengan jenis tersuai menggunakan Qt?

Bagaimana untuk menyusun peta perpustakaan standard yang besar dengan jenis tersuai menggunakan Qt?

DDD
DDDasal
2024-11-07 06:57:02345semak imbas

How to serialize a large standard library map with custom types using Qt?

Serialization dalam Qt

Apabila menggunakan pustaka Qt untuk pengaturcaraan GUI, anda mungkin menghadapi keperluan untuk mensirikan situasi pemetaan perpustakaan standard yang besar. "MyType" ialah kelas dengan medan pelbagai jenis. Apakah ciri yang disediakan oleh Qt untuk mendayakan siri pemetaan?

Gunakan QDataStream untuk bersiri

QDataStream boleh mengendalikan pelbagai jenis data C dan Qt, termasuk bekas STL. Senarai terperinci jenis data yang disokong boleh didapati dalam dokumentasi Qt. Untuk melaksanakan siri jenis tersuai, kami perlu membebankan operator << Berikut ialah definisi jenis data tersuai yang boleh digunakan dengan QDataStream:

class Painting
{
public:
    // ...
};

QDataStream &operator<<(QDataStream &out, const Painting &painting);
QDataStream &operator>>(QDataStream &in, Painting &painting);</p>
<p>Dengan melebihkan operator <<, kami boleh menulis data tersuai ke strim: </p><pre class="brush:php;toolbar:false">QDataStream &operator<<(QDataStream &out, const Painting &painting)
{
    // ...
    return out;
}

Dengan melebihkan operator >>, kami boleh membaca data tersuai daripada strim:

QDataStream &operator>>(QDataStream &in, Painting &painting)
{
    // ...
    return in;
}

Dengan melebihkan operator ini, kami boleh menggabungkan jenis tersuai dengan lancar dengan Digunakan bersama-sama dengan QDataStream untuk melaksanakan siri pemetaan dan penyahserikatan.

Atas ialah kandungan terperinci Bagaimana untuk menyusun peta perpustakaan standard yang besar dengan jenis tersuai menggunakan Qt?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn