我尝试了这个问题的代码C++ std :: transform()和toupper()..为什么这会失败?
#include <iostream>
#include <algorithm>
int main() {
std::string s="hello";
std::string out;
std::transform(s.begin(), s.end(), std::back_inserter(out), std::toupper);
std::cout << "hello in upper case: " << out << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
从理论上说,它应该是Josuttis书中的一个例子,但它不编译http://ideone.com/aYnfv.
为什么海湾合作委员会抱怨:
no matching function for call to ‘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> > >,
std::back_insert_iterator<std::basic_string
<char, std::char_traits<char>, std::allocator<char> > >,
<unresolved overloaded function type>)’
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?是GCC相关的问题吗?
我无法按字母顺序将字符串转换为大写字母.在第三组单词后,我的程序实际上开始减速并冻结.我究竟做错了什么?
string iName = list[i]->GetLastName(); // This just returns a string of a name
string jName = list[j]->GetLastName();
for(unsigned int k = 0; k < iName.length(); k++)
{
iName[k] = toupper(iName[k]);
}
for(unsigned int l = 0; l < jName.length(); l++)
{
iName[l] = toupper(jName[l]);
}
Run Code Online (Sandbox Code Playgroud)