Invalid arguments ' Candidates are: #1 transform(#0, #0, #1, #2) #2 transform(#0, #0, #1, #2, #3) '

string s1 = "hello world";
//函数的入口地址 函数对象 预定义的函数对象
transform(s1.begin(), s1.end(), s1.begin(), toupper);
cout << s1 << endl;

string s2 = "Hello World";
transform(s2.begin(), s2.end(), s2.begin(), tolower);
cout << s2 << endl;

在vs正常执行,在gcc报错:Invalid arguments ' Candidates are: #1 transform(#0, #0, #1, #2) #2 transform(#0, #0, #1, #2, #3) '

原因:vs调用的是algorithm文件中的transform方法,而gcc调用的是stl_algo.h里面的transform方法

猜你喜欢

转载自www.cnblogs.com/sageloris/p/11460562.html