如何在2个QSet之间进行交集,其中第一个不丢失元素,而仅返回结果交集?

原因是我试图对某些集合执行许多交集,但必须找出在过程中丢失元素的困难方式。

QSet<int> a, b;
a.insert(1);
a.insert(2);         // { 1, 2 }
b.insert(1);         // { 1 }
a.intersection(b);   // { 1 }
a                    // { 1 }

最佳答案

intersect修改您应用于它的集合。如果您不想这样做,请不要使用intersect

重载的operator&返回一个新的QSet,它是两个QSet的交集。还有一个赋值运算符operator&=

QSet是基于哈希的。如果您正在使用小整数集,并且担心效率,那么QBitArray可能会更好。

关于c++ - QSet交集而不丢失元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18883230/

10-11 20:37