【发布时间】:2015-10-13 22:05:43
【问题描述】:
我有
using namespace std;
vector<char> tmp;
tmp.push_back(val);
...
现在当我尝试
transform(tmp.begin(), tmp.end(), tmp.begin(), std::tolower);
编译失败,但编译成功:
transform(tmp.begin(), tmp.end(), tmp.begin(), ::tolower);
std::tolower 有什么问题?它适用于一个参数,例如,std::tolower(56) 编译。谢谢!
【问题讨论】:
-
相关/重复:stackoverflow.com/q/5270780(见第二个答案stackoverflow.com/a/5270970)
-
@dyp 那么如果
std::lower需要两个参数,std::tolower(56)怎么工作? -
std::tolower被重载,在命名空间std中有两个函数(一个function from the C library 带一个参数,one function template 带两个参数)名称为tolower。在全局命名空间中,如果有的话,那么只有 C 库的tolower接受一个参数。
标签: c++ stl std stl-algorithm