关于stl中transfrom使用时编译错误问题
2017-09-24 12:08
218 查看
关于stl中transfrom使用时编译错误问题
在codeblocks13.12编译器环境下,使用stl中的transfrom过程中一直提示编译失败,代码如下:#include<iostream> #include<algorithm> #include<string> using namespace std; //编译器环境codeblocks 13.12 int main() { //转换........... string s3 = "AAabbbccc"; cout<< s3 <<endl; //这样写编译器会一直报错 transform(s3.begin(),s3.end(),s3.begin(),toupper); //改成这样就ok了 //transform(s3.begin(),s3.end(),s3.begin(),::toupper); cout<< s3 <<endl; return 0; }
后来在网上找原因发现一个大神的原因讲解,说有三种修改方法,我只试了第一个方法编译通过:
有三种解决方法:
1.因为在全局命名空间中有实现的函数(而不是宏),所以我们明确命名空间,这并不是总奏效,但是在我的g++环境中没有问题:
transform(str.begin(), str.end(), str.begin(), ::toupper);
2.自己写一个函数出来—wraper
inline char charToUpper(char c)
{
return std::toupper(c);
}
3.强制转化:将toupper转换为一个返回值为int,参数只有一个int的函数指针
transform(str.begin(), str.end(), str.begin(), (int (*)(int))toupper);
相关文章推荐
- 关于使用Android6.0编译程序时,出现getSlotFromBufferLocked: unknown buffer: 0xac0f8650问题的解释
- 关于MFC下使用MTL库编译错误的问题
- 关于使用cocoapods管理第三方库,编译错误的问题
- 关于使用Android6.0编译程序时,出现getSlotFromBufferLocked: unknown buffer: 0xac0f8650问题的解释
- 关于MFC下使用MTL库编译错误的问题
- 关于wince 使用占用空间大的内存变量问题(编译无错误但是无法运行的问题)
- 关于vs使用winddk开发包编译错误问题
- 【转】关于使用Android6.0编译程序时,出现getSlotFromBufferLocked: unknown buffer: 0xac0f8650问题的解释
- 关于usb_modeswitch编译时错误的问题
- Linux系统平台下关于GCC编译及使用的方法(-Werror,它要求GCC将所有的警告当成错误进行处理 )
- linux 关于编译模块缺少config.h而产生错误的问题
- 关于_com_util::ConvertBSTRToString”: 编译错误问题
- aix使用g++编译时一个stl string的问题
- 关于使用eclipse进行编译时总是有javascript validator错误提示
- 关于keil编译cortex-m3纯汇编时为什么问题使用align地址问题
- 一个关于OpenCV2.2静态编译时无法用cvCaptureFromFile读取文件的问题
- 关于Vs 2005 中出现编译通过,但运行时出现“未使用调试信息生成二进制文件”的问题
- 关于Visual 2005中MFC调用Berkeley DB的编译错误问题
- Linux系统平台下关于GCC编译及使用的方法 (-Werror,它要求GCC将所有的警告当成错误进行处理
- 使用flashdevelop时,MXML文件中带有中文时编译错误问题解决