给定代码:
#include <iostream>
#include <cctype>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s("ABCDEFGHIJKL");
transform(s.begin(),s.end(),s.begin(),tolower);
cout<<s<<endl;
}
我遇到了以下错误:
无法匹配函数调用
transform(__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, <未解决的重载函数类型>)
"未解决的重载函数类型"是什么意思?
如果我将tolower
替换为我编写的一个函数,就不会出现错误了。
main
函数的返回类型是int
,在C++中返回类型必须显式声明。一些编译器可以通过发布的代码,但这是不标准的,可能会因为新的编译器版本或其他编译器而失效。 - David Rodríguez - dribeasmain
返回,它会隐式返回 0。请参见此答案的评论:https://dev59.com/g1wX5IYBdhLWcg3wvRkf#33442842 - Jonathan Mee