首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >::tolower与std::tolower差异

::tolower与std::tolower差异
EN

Stack Overflow用户
提问于 2015-07-23 22:18:59
回答 1查看 1.3K关注 0票数 7

我有过

代码语言:javascript
复制
using namespace std;
vector<char> tmp;
tmp.push_back(val);
...

现在当我试着

代码语言:javascript
复制
transform(tmp.begin(), tmp.end(), tmp.begin(), std::tolower);

它无法编译,但它会编译:

代码语言:javascript
复制
transform(tmp.begin(), tmp.end(), tmp.begin(), ::tolower);

std::tolower有什么问题?它只使用一个参数,例如,std::tolower(56)编译。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-07-23 22:22:48

std::tolower有两个重载,并且不能为UnaryOperation解析,而C版本的::tolower没有。

如果您想使用std::tolower,您可以使用lambda作为

代码语言:javascript
复制
transform(tmp.begin(), tmp.end(), tmp.begin(), [](unsigned char c) {return std::tolower(c); });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31590105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档