c ++ unordered_set无法插入自定义对象?

时间:2015-03-31 06:59:02

标签: c++ stl set unordered-set

#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;
}

据我所知: 我应该重载&lt; for set,因为它是二叉搜索树。 我应该重载== for unordered_set,因为它是一个哈希表。 如果我错了,请纠正我。

问题:

1代码无法编译,请帮我解决。

这行

2:

bool operator < (const Cube &c) const {

如果我删除第二个const。它也不能编译为什么我需要第二个const? 为什么我不能超载&lt;这样吗?

bool operator < ( Cube &c) {
}

0 个答案:

没有答案