相关疑难解决方法(0)

std :: transform()和toupper(),没有匹配的函数

我尝试了这个问题的代码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相关的问题吗?

c++ algorithm stl

57
推荐指数
2
解决办法
4万
查看次数

标签 统计

algorithm ×1

c++ ×1

stl ×1