我有一个结构点
struct Point
{
int x;
int y;
bool operator == (const Point& point) const {
return this->x != point.x ? false : (this->y != point.y ? false : true);
}
bool operator < (const Point& point) const {
return this->x < point.x && this->y < point.y;
}
};
我还有一个DraughtType枚举
enum class DraughtType {
NORMAL, QUEEN
};
我有一个std :: map&lt; Point,DraughtType&gt;。当我将元素插入std :: map时,只插入3个值。
这是插入白色草稿的代码
void Board::initializeWhiteDraughts()
{
for (auto i = 0; i < 3; ++i) {
int x = i;
for (auto j = i % 2 == 0 ? 0 : 1 ; j < COLUMNS; j+=2) {
Point point;
point.x = x;
point.y = j;
whiteDraughts[point] = DraughtType::NORMAL;
}
}
}
但输出如下:
0 0
1 1
2 2
显然缺少很多草稿。
我的代码出了什么问题?我试图改变运算符比较,但它没有用。