首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QMap算子<()

QMap算子<()
EN

Stack Overflow用户
提问于 2017-10-05 16:18:30
回答 1查看 947关注 0票数 0

我不确定是否正确地理解了这些文档。我希望为<()定义自己的QMultiMap操作符,以便使用自定义类型并定义特定的values(const Key &key)行为。

所需的行为是检索具有相同组和事件的搜索键( src )的所有值,以及匹配src中的初始部分的有效负载字符串。示例:

我地图中的一个键中的有效载荷可能是:"HUB,按*“。如果src匹配组和事件值并具有以下有效负载:“HUB,PRESS,3”应检索上述元素(因为src有效负载以相同的字符串部分开头)。

在这里,我的实施:

代码语言:javascript
复制
struct event_t {
    int group;
    int event;    
    QString payload;
};

inline bool operator <(const event_t &e1, const event_t &e2)
{
    if (e1.group != e2.group) return e1.group < e2.group;
    if (e1.event != e2.event) return e1.event < e2.event;

    if (e2.payload.endsWith("*\""))
    {
        qDebug() << e1.payload << e2.payload;
        QString s2 = e2.payload.mid(0, e2.payload.size() - 2);
        QString s1 = e1.payload.mid(0, s2.size());
        s1.append("\"");
        s2.append("\"");
        return s1 < s2;
    }

    return e1.payload < e2.payload;
}

这里是一个简单的用例:

代码语言:javascript
复制
QMultiMap<event_t, event_t> m_map;
// fill with some items, one has the key like: "HUB,PRESS*"

event_t src;
// populate it

QList<event_t> dst = m_map.values(src);

问题是,我从未看到针对可用项的src调试打印(正如我从values() 代码中所期望的那样)。相反,我的qDebug()为e1 e e2打印相同的值(存储在映射中的值),而从不打印src值。即:

代码语言:javascript
复制
"\"HUB,PRESS*\"" "\"HUB,PRESS*\""

也许我不明白这该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-05 16:34:31

在这里,工作代码:

代码语言:javascript
复制
inline bool operator <(const event_t &e1, const event_t &e2)
{
    if (e1.group != e2.group) return e1.group < e2.group;
    if (e1.event != e2.event) return e1.event < e2.event;

    if (e1.payload.endsWith("*\""))
    {
        QString s1 = e1.payload.mid(0, e1.payload.size() - 2);
        QString s2 = e2.payload.mid(0, s1.size());
        s1.append("\"");
        s2.append("\"");
        return s1 < s2;
    }

    return e1.payload < e2.payload;
}

我不知道为什么,但是src值包含在e1中,而不是像我期望的值()实现的e2中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46590388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档