我制作了一组结构。 我的结构体内部有一个长度为8的数组作为指针。 如果我在集合中插入一些结构,就可以了。 但是当我尝试查找时,会发生错误(“无效的比较器”)。 这是我的代码。
struct Key {
int* arr;
};
bool operator<(const Key& a, const Key& b) {
for (int i = 0; i < 8; i++) {
if (a.arr[i] == b.arr[i]) {
continue;
}
else {
return a.arr[i] < b.arr[i];
}
}
return true;
}
bool operator==(const Key& a, const Key& b) {
for (int i = 0; i < 8; i++) {
if (a.arr[i] != b.arr[i]) {
return false;
}
}
return true;
}
set<Key> visit;
visit.insert(initKey);
......
Key key;
key.arr = newcandidate;
visit.find(key); -> trigger error.
我想将数组添加到某个地方。 然后我想在那里快速找到一些数组。 因此,我尝试使用“设置”结构。 我该怎么做才能解决这个问题? 非常感谢您的阅读。
答案 0 :(得分:0)
您只需要正确定义运算符<。运算符==与集合无关。 您应该在最后一行返回false。关系是严格的。