Hello!

QMap::insert(const QMap &) was added in 5.15. No operator+ though.

https://doc.qt.io/qt-5/qmap.html#insert-2

________________________________________
From: Interest <interest-boun...@qt-project.org> on behalf of Jason H 
<jh...@gmx.com>
Sent: Tuesday, March 23, 2021 14:52
To: interestqt-project.org
Subject: [Interest] Missing QMap Algebra?

I've been in the python world lately and python has a dict.update() 
https://python-reference.readthedocs.io/en/latest/docs/dict/update.html
It seems that QMap has no such function anymore, but it also never did? unite() 
would make a QMultiMap, so there would be multiple entries rather than one. 
Which has me asking the question, do I have to provide this myself? Seems a 
pretty trivial thing to have to provide?

    QVariantMap map_a, map_b;
    ...
    auto combined_map = map_a;
    for (const QString& key: map_b.keys()) {
        combined_map[key] = map_b[key];
    }

Additionally there is no + operator for it, which is actually what I want:

    combined_map = map_a + map_b;

But I would be happy with:

   combined_map.update(map_b);


Additionally if we're trying to provide as much algebra as possible:

    map_a = combined_map - map_b.keys() // remove by matching key
    map_a = combined_map - map_b;       // remove by matching key-value pairs

In Python, these are doable in a 1-line list/dict comprehension.

Thoughts?

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to