C++ 使用==比较2个字符串中的问题

C++ 使用==比较2个字符串中的问题,c++,C++,我想知道两个链表之间的相似性我在它们之间得到了一些相同的数据,但是==运算符不能识别它们,你能帮我吗?v将始终保持为0数据类型为字符串 class node{ string Data; node *next; }; float nodelinkedlist::vazn(nodelinkedlist list1,nodelinkedlist list2) { float w=0,v=0; node *temp1=new node; node *temp2=new node; temp1-&g

我想知道两个链表之间的相似性我在它们之间得到了一些相同的数据,但是==运算符不能识别它们,你能帮我吗?v将始终保持为0数据类型为字符串

class node{
string Data;
node *next;
};

 float nodelinkedlist::vazn(nodelinkedlist list1,nodelinkedlist list2)
{
 float w=0,v=0;
node *temp1=new node;
node *temp2=new node;
temp1->next=list1.first->next;
temp1->Data=list1.first->Data;
temp2->next=list2.first->next;
temp2->Data=list2.first->Data;
      while(temp1->next!=NULL)
  { 
    while(temp2->next!=NULL)
    {
        if((temp1->Data)==(temp2->Data))
            v++;
        temp2=temp2->next;
    }
    temp1=temp1->next;
}
w=(v/((linklen(list1)+linklen(list2)-v)));
return w;
}

根据使用的库,可能无法实现==运算符。以下是一些参考资料:

请尝试以下比较:

if(temp1->Data.compare(temp2->Data)) == 0)
     v++;
如果字符串相等,则比较返回0,请记住考虑大小写敏感度

我刚才注意到的另一个问题是,当完成内部循环时,不会重置temp2节点的值

class node{
string Data;
node *next;
};

 float nodelinkedlist::vazn(nodelinkedlist list1,nodelinkedlist list2)
{
 float w=0,v=0;
 node *temp1=new node;
 node *temp2=new node;
 temp1->next=list1.first->next;
 temp1->Data=list1.first->Data;
 temp2->next=list2.first->next;
 temp2->Data=list2.first->Data;
  while(temp1->next!=NULL)
  { 
      while(temp2->next!=NULL)
      {
          if(temp1->Data.compare(temp2->Data)) == 0)
              v++;
          temp2=temp2->next;
      }
      temp1=temp1->next;
      temp2->next=list2.first->next;
      temp2->Data=list2.first->Data;
  }
  w=(v/((linklen(list1)+linklen(list2)-v)));
  return w;
}

数据成员的类型是什么?请将代码缩减并扩展为一个字符串。@Mat sry不提及数据是一个字符串请记住字符串比较区分大小写。字符串FOO不等于字符串FOO。您可能希望在调试器中运行,并逐行遍历函数,以查看所涉及的变量和成员的实际值。其优于==和dos不跳过任何文件似乎运算符==跳过某些文件,无法识别它们