Find difference between two QStringList
-
I have two QStringList @ QStringList list1, list2; @
List2 is newer version of list1.I need to find difference of these two lists. Is there any built in function in QT for this?
There is a way to find intersection of the two QStringList with
@ QSet<QString> intersection = list1.toSet().intersect(list2.toSet());@
But how to find the difference of the two lists?If not, What is the easiest and most efficient.
Regards,
-
using "subtract ":http://qt-project.org/doc/qt-5/qset.html#subtract
you can determine what is in list 1 and not in list 2 and the other way around.Afterwards, you can combine these results with unite.
-
Dear Eddy,
Thanks for you reply. Below is my code snippet. I am having problem at line 24. I know that difference will be 1 value between new and old list.@ QStringList mOldList, mNewList;
mNewList.append("1");
mNewList.append("2");
mNewList.append("3");
mNewList.append("4");
qDebug("mNewList.count():%d",mNewList.count());mNewList.append("1"); mNewList.append("2"); mNewList.append("3"); mNewList.append("4"); mNewList.append("5");
qDebug("mNewList.count():%d",mNewList.count());
QSet<QString> subtraction = mNewList.toSet().subtract(mOldList.toSet());
qDebug("Difference size:%d\n ", subtraction.size());
QSet<QString>::iterator i ;
QString DiffFileName;
for (i = subtraction.begin(); i != subtraction.end();++i) { DiffFileName <<i; //This statement is giving compilation error } qDebug(" DiffFileName:\n "); qDebug(" DiffFileName:%s\n ", DiffFileName);@
Above is my code for populating the lists and checking the difference. Statement 24 is giving compilation error. How shall I assign the value to my QString variable?
Regards