为什么count_if()可以在没有算法头的情况下工作

Why does count_if() work without algorithm header?

本文关键字:算法 工作 情况下 count if 为什么      更新时间:2023-10-16

试着复习我的c++,我从网络搜索中找到了一个我需要的辅助函数,并在c++参考资料中查找之前试用了它:

int count_vowels(const std::string &input) {
    return std::count_if(input.begin(), input.end(), is_vowel);
}

当我查找count_if()的更多细节时,我发现它是 (显然)和<<>。我正在使用编译标志-std=c++11,如果这很重要的话。

同样,如果没有头文件,我应该把头文件,无论如何为了清晰起见(或因为其他编译器不一定会挑选必要的函数定义)?

它可以工作,因为它可能通过其他标头之一间接包含。但这并不能保证,它可能会在不同的编译器上中断,或者在您现在使用的编译器的未来版本上中断。

如果你使用的是Visual c++,那么你可以通过Project -> Settings -> C/c++ -> Advanced打开show includes来查看包含哪些文件。

如果使用gcc,那么这解释了等价的:/show include equivalent选项在g++