dev C++ error:Id returned 1 exit status
C++ error:no matching function for call to transform
C++ error: invalid types for array subscript
報錯
1 2 3 4 5 6
| int main () { string str = "Hello"; transform (str.begin (), str.end (), str.begin (), ::toupper); cout << str; }
|
報錯:no matching function for call to transform
有三種解決方法:
1. 因為在全域性名稱空間中有實現的函式(而不是巨集),所以我們明確名稱空間,這並不是總奏效,但是在我的 g++ 環境中沒有問題:
1
| transform (str.begin (), str.end (), str.begin (), ::toupper);
|
2. 自己寫一個函數出來 —wraper
1 2 3 4
| inline char charToUpper (char c) { return std::toupper (c); }
|
3. 強制轉化:將 toupper 轉換為一個返回值為 int,引數只有一個 int 的函數指標。
1
| transform (str.begin (), str.end (), str.begin (), (int (*)(int)) toupper);
|