c++ - 哪个版本的 "find an occurence"函数更快?

标签 c++ performance algorithm

我的算法不是很强。函数有两个版本,如果传递的字符串中有大写字母则返回。
First 不检查每次迭代的条件。第二个在第一次出现大写字母后结束。
总体上哪个更快?

bool isAnyCapLetters(const std::string &s) {
    int flag = 0;
    for (auto el : s)
        flag += isupper(el);
    return static_cast<bool>(flag);
}
bool isAnyCapLetters(const std::string &s) {
    for (auto el : s)
        if (isupper(el)) return true;
    return false;   
}

最佳答案

第二个提前返回并且对于以大写字母开头的长字符串会更快。

关于c++ - 哪个版本的 "find an occurence"函数更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687477/

相关文章:

ruby - 将数组组合成所有可能值组合的数组的单线算法?

c# - 比较阵列之间的距离?

javascript - Javascript 中等效的 C/C++ 数据结构是什么?

c++ - Boost Polygon 的用途是什么?

c++ - 用 bool 逻辑替换 IF 语句(随机条件) - 执行时间是否相同?

MySql,SELECT * FROM 带索引列

c++ - 非法指令 4 在 Mac 上使用 C++

c++ - 树莓派SFML播放音频

c# - Web 服务器性能/测试工具

algorithm - 旅行商 (TSP) 表现