无序的map、QMap的对应list

无序的map

第一阶段,map不排序的倒序

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    struct greater2 {
      bool operator()(const int& x, const int& y) const {
          return true;
      }
    };
    std::map<int, QString, greater2> map;
    map.insert({2, "ddf"});
    map.insert({1, "ddf"});
    map.insert({3, "ddf"});
    map.insert({4, "ddf"});

    for(auto m : map)
        qInfo() << m;

    return 1;
}

输出结果:

std::pair(4,"ddf")

std::pair(3,"ddf")

std::pair(1,"ddf")

std::pair(2,"ddf")

第二阶段,unordered_map类

#include <QtDebug>
#include <unordered_map>
#include <map>
#include <string>
#include <iostream>
#include <QApplication>

using namespace std;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    unordered_map<int, QString> map={{ 3, "fdd" },{ 1, "fdd" }, { 2, "fdd" }};//使用{}赋值

    for(auto k : map)
        qInfo() << k;

    return 1;
}

输出结果:

std::pair(2,"fdd")

std::pair(1,"fdd")

std::pair(3,"fdd")

QMap的对应list

    template<typename T>
    class PairList : public QList<QPair<QString, T> >{
    public:
        bool contains(QString key) {
            for(int k = 0; k < this->count(); k ++) {
                if(this->at(k).first == key)
                    return true;
            }
            return false;
        }
        T value(const QString &key) {
            for(int k = 0; k < this->count(); k ++) {
                if(this->at(k).first == key)
                    return this->at(k).second;
            }
            return 0;
        }
        QString key(T obj){
            for(int k = 0; k < this->count(); k ++) {
                if(this->at(k).second == obj)
                    return this->at(k).first;
            }
            return "";
        }
        void append(QString key, T value ) {
            this->insert(this->count(), QPair<QString ,T>(key, value));
        }
    };
    typedef QPair<QString, QObject *> PairWidget;
    typedef QPair<QString, QString> PairString;
    typedef PairList<QObject *> PairWidgetList;
    typedef PairList<QString> PairStringList;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值