C++ C2679结构上下文
Hi stack overflow我对stl中的集合有问题,我的问题是: 输入: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
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;
}