#include <iostream>
#include <unordered_set>
#include <set>
using namespace std;
struct Cube {
int x;
int y;
int number;
bool canRemove;
Cube(int x, int y, int number) : x(x), y(y), number(number) {}
bool operator == (const Cube &c) const {
return true;
}
};
int main () {
int m;
cin >> m;
unordered_set<Cube> s;
//unordered_set<Cube> s1;
//unordered_set<Cube> s2;
for (int i = 0; i < m; i++) {
int x, y;
cin >> x >> y;
s.insert(Cube(x, y, i));
}
cout << s.size() << endl;
return 0;
}
Насколько я понимаю: я должен перегрузить ‹ для набора, потому что это двоичное дерево поиска. Я должен перегрузить == для unordered_set, потому что это хеш-таблица. Пожалуйста, поправьте меня, если я ошибаюсь.
Вопрос:
1 код не компилируется, помогите исправить.
2 для этой строки:
bool operator < (const Cube &c) const {
если я удалю второй const. Он также не может скомпилировать набор, зачем мне второй const? почему я не могу перегрузить ‹ таким образом?
bool operator < ( Cube &c) {
}
std::set
. - person juanchopanza   schedule 31.03.2015