QSet交集不丢失元素

Pas*_*ten 0 c++ qt set

如何在2个QSets之间进行交集,其中第一个不丢失元素,但只返回结果的交集?

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

QSet<int> a, b;
a.insert(1);
a.insert(2);         // { 1, 2 }
b.insert(1);         // { 1 }
a.intersection(b);   // { 1 }  
a                    // { 1 }
Run Code Online (Sandbox Code Playgroud)

Kei*_*son 7

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

重载operator&返回一个新QSet的两个QSets 的交集.还有一个赋值运算符operator&=.

QSet是基于哈希的.如果您正在处理小整数集并且您关注效率,QBitArray那么可能会更好.

  • 打败我.`QSet <int> c = a&b;` (2认同)