为什么我得到“错误C2678:二进制'==':没有找到哪个运算符采用类型的左手操作数”

时间:2016-05-05 14:35:23

标签: visual-studio-2012

我正在使用vs2012并遇到同样的问题。下面是我的示例源代码。

#include "stdafx.h"
#include "iostream"
#include "list"
#include "algorithm"
#include "xutility"

using namespace std;

typedef struct Student{
   string name;
   int age;

  int operator==(list<Student>::iterator itr)
  {
    return (!strcmp(itr->name.c_str(),this->name.c_str()));
  }
}SStudent;


 int _tmain(int argc, _TCHAR* argv[])
 {
    list<SStudent> myList;
    SStudent temp1;
    temp1.age = 10;
    temp1.name = "aaaa";

    myList.push_back(temp1);

    list<SStudent>::iterator itr;
     itr = std::find(myList.begin(), myList.end(), "aaaa");

    return 0;
 }

这是错误: 错误1错误C2678:二进制'==':找不到哪个运算符带有'Student'类型的左手操作数(或者没有可接受的转换)c:\ program files(x86)\ microsoft visual studio 11.0 \ _ vc \包括\ xutility 3186

0 个答案:

没有答案