C++ C2679结构上下文

C++ C2679结构上下文,c++,set,C++,Set,Hi stack overflow我对stl中的集合有问题,我的问题是: 输入: 3 2,2,3 American Beauty#2002 Iron Man#2012 Interstellar#2014 Iron Man#2012 Inception#2010 Forrest Gump#1994 Iron Man#2012 SetTask2.h: #pragma once #include <set> #include <vector> #include <ios

Hi stack overflow我对stl中的集合有问题,我的问题是:

输入:

3
2,2,3
American Beauty#2002
Iron Man#2012
Interstellar#2014
Iron Man#2012
Inception#2010
Forrest Gump#1994
Iron Man#2012
SetTask2.h:

#pragma once
#include <set>
#include <vector>
#include <iostream>
#include <string>
#include <fstream>
#include <iterator>
#include <algorithm>

using namespace std;

struct Movie {
    string movieName;
    int movieYear;
};

bool operator<(const Movie& m1, Movie& m2);
void SetTask2();
然后我得到这个错误:

错误C2679二进制'
错误C2679 binary“您能发布足够的代码让我们重现此问题吗?我怀疑错误可能是定义
运算符我现在用文件内容编辑问题。谢谢你现在一切都清楚了!!祝您愉快:D,我忘记了第二个参数的常数。。。
    #include "SetTask2.h"

bool operator<(const Movie& m1, Movie& m2) {
    return m1.movieYear <= m2.movieYear;
}

void SetTask2() {
    ifstream in("SetTask2.in");
    int numberOfPersons;
    in >> numberOfPersons;

    vector<set<Movie>> preferences;

    string prefNumberS;
    in >> prefNumberS;
    for (int i = 0; i < prefNumberS.size(); i++) {
        if (prefNumberS[i] != ',') {
            int number = (int)prefNumberS[i] - 48;

            string mName;
            string mYear;

            Movie m;
            set<Movie> s;

            for (int j = 0; j < number; j++)
            {
                getline(in, mName, '#');
                getline(in, mYear, '\n');
                m.movieName = mName;
                m.movieYear = stoi(mYear);

                s.insert(m);
                preferences.push_back(s);
            }
        }
    }
}
#include "SetTask2.h"

using namespace std;

int main()
{

    SetTask2(); // Set : Task 2

    return 0;
}
bool operator < (const Movie& left, const Movie& right) {

    return left.movieYear < right.movieYear;
}