2015-07-20 65 views
2

以前,我使用append函數來連接字符串。但是,因爲這樣做需要多行不必要的代碼,所以我想試試'+'運算符。不幸的是,它並不順利......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#之前,我對此沒有任何問題。

+0

你連接兩個字符串文字。 +運算符將工作在兩個'std :: string's或一個'std :: string'和一個'char *'。 – Steve

+0

此外,您正在將字符串文字添加到整數,這將無法正常工作。 – Steve

+0

This works:'auto foo = std :: string {「Hello」} +「world!」;' – Steve

回答

2

您可以使用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; 
}