no matching function for call to 'transform(std::__cxx11::basic_string

刷题遇到的问题,transform(s.begin(), s.end(), s.begin(), tolower);将string类型全部转换成小写。

报错no matching function for call to 'transform(std::__cxx11::basic_string

错误原因:

既有C版本的toupper/tolower函数,又有STL模板函数toupper/tolower,二者存在冲突。

解决办法:

在toupper/tolower前面加::,强制指定是C版本的。

你可能感兴趣的:(C++学习)