为什么条件不是*First1==*First2??(C+;+;STL包括函数实现) 我是一个学习STL C++的学生,有一个简单的问题。

为什么条件不是*First1==*First2??(C+;+;STL包括函数实现) 我是一个学习STL C++的学生,有一个简单的问题。,c++,algorithm,stl,C++,Algorithm,Stl,在学习如何在算法库中实现includes函数时,我一直在想。请参阅此代码 (此代码来自) 模板 bool包括(InputIt1 first1、InputIt1 last1、InputIt2 first2、InputIt2 last2){ 对于(;first2!=last2;++first1){ 如果(first1==last1 | |*first2

在学习如何在算法库中实现includes函数时,我一直在想。请参阅此代码 (此代码来自)

模板
bool包括(InputIt1 first1、InputIt1 last1、InputIt2 first2、InputIt2 last2){
对于(;first2!=last2;++first1){
如果(first1==last1 | |*first2<*first1)
返回false;
如果(!(*first1<*first2))
++前2名;
}
返回true;
}
本节中有一些问题

if ( !(*first1 < *first2) )
            ++first2;
if(!(*first1<*first2))
++前2名;
此部分显示为确定
*first1
是否等于
*first2
的代码,以确定给定的部分序列是否为有序序列的一部分。我想

如果是这样,
*first1==*first2
似乎足够了,我想知道为什么
!(first1


这种情况有什么特殊原因吗?

类型
InputIt1
所需的概念之一是它实现了
都可以按照要求相等的
来编写;a(这

if ( !(*first1 < *first2) )
            ++first2;