"Cat", "key2"=> "Dog", "key3"=> "Mouse"]。在 B 中,我-6ren">
gpt4 book ai didi

c++ - Qt5中如何 "merge"两个QVariantMap的内容?

转载 作者:行者123 更新时间:2023-11-30 05:24:09 29 4
gpt4 key购买 nike

我有两个 QVariantMap 实例 AB

A 中,我有以下字符串:[ "key1"=> "Cat", "key2"=> "Dog", "key3"=> "Mouse"]。在 B 中,我有以下字符串:[ "key1"=> "Cat", "key4"=> "Dog", "key3"=> "Bison"] .

我想将它们合并到第三个 QVariantMap 实例 C 中,以便它包含以下内容:

[ "key1"=> "Cat", "key2"=> "Dog", "key3"=> "Bison", "key4"=> "Dog"].

请注意只有一只“猫”以及“老鼠”是如何被“野牛”取代的。

有没有一种方法可以在 Qt5 中执行此操作而无需编写我自己的实用程序函数来执行此操作?

最佳答案

QVariantMap A;
QVariantMap B;
QVariantMap C;
A.insert("key1", "Cat");
A.insert("key2", "Dog");
A.insert("key3", "Mouse");

B.insert("key1", "Cat");
B.insert("key4", "Dog");
B.insert("key3", "Bison");

//Merge A and B
C = A.unite(B);
//C.value("key1") = "Cat"
//C.value("key3") = "Bison"
//C.values("key3") = {"Bison", "Mouse"}
//C.values("key1") = {"Cat", "Cat"}
//Note: A = C as well. If you don't want to change the value of A, then assign a temporary value to A or create a copy of A

//Method 1: Create a copy of A
QVariantMap ACopy = A;
C = ACopy.unite(B);

//Method 2: Create a temporary variable that hold A value:
QVariantMap ATemp = A;
C = A.unite(B);
A = ATemp;

关于c++ - Qt5中如何 "merge"两个QVariantMap的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38804275/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com