版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leoeitail/article/details/91517385
QmapOperation.h
#ifndef QMAPOPERATION_H
#define QMAPOPERATION_H
#include <QObject>
#include <QMap>
#include <QDebug>
class QmapOperation : public QObject
{
Q_OBJECT
public:
explicit QmapOperation(QObject *parent = nullptr);
//添加
void QmapInsert();
//修改
void QmapUpdata();
//查找
void QmapFind(QString key);
//遍历
void QmapTraversal();
//删除
void QmapRemove();
public:
QMap<QString,QString> m_cQmap;
signals:
public slots:
};
#endif // QMAPOPERATION_H
QmapOperation.cpp
#include "QmapOperation.h"
QmapOperation::QmapOperation(QObject *parent) : QObject(parent)
{
}
void QmapOperation::QmapInsert()
{
m_cQmap.insert("aaa","leo");
m_cQmap.insert("bbb","Jason");
m_cQmap.insert("ccc","May");
m_cQmap.insert("ddd","Tom");
m_cQmap.insert("eee","Jack");
QmapTraversal();
}
void QmapOperation::QmapUpdata()
{
m_cQmap["bbb"] = "Bob";
QmapTraversal();
}
void QmapOperation::QmapFind(QString key)
{
QMap<QString, QString>::iterator i;
i = m_cQmap.find(key);
qDebug() << i.key() <<" ==> " << i.value();
}
void QmapOperation::QmapTraversal()
{
QMap<QString, QString>::const_iterator i;
for( i=m_cQmap.constBegin(); i!=m_cQmap.constEnd(); ++i)
{
qDebug() << i.key() <<" ==> " << i.value();
}
}
void QmapOperation::QmapRemove()
{
QMap<QString, QString>::iterator i;
for( i=m_cQmap.begin(); i!=m_cQmap.end(); ++i)
{
if(i.key() == "ccc")
{
m_cQmap.erase(i);
i = m_cQmap.begin()+1;//删除之后要将指针指向后面一个
}
}
QmapTraversal();
}
调用:
#include "QmapOperation.h"
QmapOperation* m_pQmapOperation;
m_pQmapOperation = new QmapOperation();
qDebug() << "----insert----";
m_pQmapOperation->QmapInsert();
qDebug() << "----updata----";
m_pQmapOperation->QmapUpdata();
qDebug() << "----find----";
m_pQmapOperation->QmapFind("ccc");
qDebug() << "----remove----";
m_pQmapOperation->QmapRemove();
输出结果:
----insert----
"aaa" ==> "leo"
"bbb" ==> "Jason"
"ccc" ==> "May"
"ddd" ==> "Tom"
"eee" ==> "Jack"
----updata----
"aaa" ==> "leo"
"bbb" ==> "Bob"
"ccc" ==> "May"
"ddd" ==> "Tom"
"eee" ==> "Jack"
----find----
"ccc" ==> "May"
----remove----
"aaa" ==> "leo"
"bbb" ==> "Bob"
"ddd" ==> "Tom"
"eee" ==> "Jack"