2013-07-09 16 views
6

Mam dwa QList s, dla których muszę określić skrzyżowanie (w tym konkretnym przypadku, dwa QStringList s, ale przypuszczam, że będzie to miało zastosowanie do każdego kontenera, o ile T implementuje operator==()).Jaki jest sposób Qt, aby uzyskać przecięcie między dwiema QListami?

Jaki jest sposób Qt w celu ustalenia przecięcia list?

EDYTOWANIE:

Zamówienie i powielanie nie stanowią problemu. Po prostu szukam przedmiotów, które istnieją na obu listach.

Odpowiedz

12

To zależy od tego, co dokładnie chcesz osiągnąć. Czynniki takie jak powielanie wejść i zamawianie wchodzą w grę, jeśli masz do czynienia z listami. Jeśli chcesz tylko wiedzieć, które elementy mają wspólną listę, możesz to zrobić:

QSet<QString> intersection = list1.toSet().intersect(list2.toSet()); 
+0

Awesome! Dzięki Chris. Dobrze cię znów widzieć ;-) –

+0

Pewnie Ben :) – Chris