gpt4 book ai didi

c++ - STL 算法的谓词

转载 作者:行者123 更新时间:2023-11-28 00:46:51 24 4
gpt4 key购买 nike

我有以下问题:

find_if(s.begin(), s.end(), isalpha);

s 是一个库字符串。当我尝试使用 isalpha(在“cctype” header 中)时,它说“类型不匹配”。问题是 isalpha 接受一个 int 并返回一个 int:int isalpha(int)

我通过声明另一个函数解决了这个问题:

bool IsAlpha(char c) {
return isalpha(c);
}

但是,有没有更好的方法来做到这一点?我更喜欢更好的代码清晰度和简单性,而不声明这个“包装器”函数。

谢谢!

最佳答案

我想“正确”的 C++ 方法是使用语言环境中定义的 isalpha:

std::find_if(
s.begin(),
s.end(),
[](char c) { return std::isalpha(c, std::locale()); }
);

可能有点冗长。

关于c++ - STL 算法的谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15941573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com