如何在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/