C++中的字符串连接

string concatenation in c++

以前,我使用附加函数来连接字符串。 但是,由于这样做需要多行不必要的代码,所以我想尝试使用“+”运算符。不幸的是,它并不顺利...

bool Grid::is_available(int x, int y) const
{
    if (x < 0 || x >= dim[1] || y < 0 || y >= dim[0])
        throw std::invalid_argument("is_available(" + x + ", " + y + "): Invalid coordinate input.");
    return occupancy[x][y] == AVAILABLE;
}

我收到的错误是“'+': 无法添加两个指针”,代码为 C2110。 这个问题的所有解决方案据说在每一行上连接一个。 实际上没有办法在一行中连接 C++ 中的多个字符串吗?我以前在 C# 中对此没有问题。

您可以使用 std::to_string() 来转换您的整数:

bool Grid::is_available(int x, int y) const
{
    if (x < 0 || x >= dim[1] || y < 0 || y >= dim[0])
        throw std::invalid_argument(
            "is_available(" + std::to_string(x) + ", "
                + std::to_string(y) + "): Invalid coordinate input.");
    return occupancy[x][y] == AVAILABLE;
}