请问两个链表中的元素如何比较,找出两个链表中不同字符串
我创建了两个链表
CList<CString,CString> List;
CList<CString,CString> List1;
两个链表均存储我遍历指定文件夹后得到的文件,List存储第一次遍历得到的文件,此时我在指定文件夹下增加或删除文件时,就在执行一次遍历指定目录得到的新数据存到List1中,请问我如何将这两个链表进行对比找出其中不同的部分(就是新加入或删除的文件)。
我写了如下的方法: 其中的num与num1是这两个链表的结点个数
POSITION pos = List.GetHeadPosition();
POSITION pos1 = List1.GetHeadPosition();
if(num > num1)
{
CString str;
str = "有文件被删除,删除的文件为:";
SetDlgItemText(IDC_EDIT3,str);
CString str2="";
CString str3="";
for(int i=0;i<num1;i++)
{
str2 = List1.GetNext(pos1);
for(int j=0;j<num;j++)
{
str3 = List.GetNext(pos);
// SetDlgItemText(IDC_EDIT10,str3);
if(strcmp(str2,str3) != 0)
{
SetDlgItemText(IDC_EDIT10,str3);
}
}
}
这样做没有得到我想要的数据,而且执行按钮功能的时候程序还会崩溃,求大神指教,该如何修改