std :: map没有插入struct elements

时间:2017-06-25 04:21:15

标签: c++ c++11 dictionary struct

我有一个结构点

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

显然缺少很多草稿。

我的代码出了什么问题?我试图改变运算符比较,但它没有用。

0 个答案:

没有答案