我有一个vectorofstrings和一个空vector的int:
vector<string> ints_as_strings;
vector<int> ints_as_ints;
Run Code Online (Sandbox Code Playgroud)
目标是将前者转变为后者。
std::transform与 lambda 一起工作:
std::transform(ints_as_strings.begin(),
ints_as_strings.end(),
back_inserter(ints_as_ints),
[](const string& s) {return std::stoi(s);});
Run Code Online (Sandbox Code Playgroud)
然而我只想使用std::stoi.
传递我的函数的地址mystoi是有效的:
int mystoi(string s) {return stoi(s);}
std::transform(ints_as_strings.begin(),
ints_as_strings.end(),
back_inserter(ints_as_ints),
&mystoi);
Run Code Online (Sandbox Code Playgroud)
但是,直接传递地址是std::stoi行不通的。这是因为额外的参数(但是提供了默认值)吗?
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |