Boost C++ 库

……世界上最受推崇、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

MPL 参考手册:equal - Boost C++ 函数库
首页 / 算法 / 查询算法 / equal

equal

提要

template<
      typename Seq1
    , typename Seq2
    , typename Pred = is_same<_1,_2>
    >
struct equal
{
    typedef unspecified type;
};

描述

如果两个序列在逐个元素比较后Seq1andSeq2完全相同,则返回一个真值的 Integral Constant

参数

Parameter 要求 描述
Seq1, Seq2 Forward Sequence 待比较的序列。
Pred 二元 Lambda 表达式 比较准则。

表达式语义

对于任何 前向序列s1ands2以及一个二元 Lambda 表达式pred:

typedef equal<s1,s2,pred>::type c;
返回类型

整数常量

语义

c::value == true当且仅当size<s1>::value == size<s2>::value并且对于每一个迭代器i在 [begin<s1>::type, end<s1>::type) deref<i>::type与...相同

advance< begin<s2>::type, distance< begin<s1>::type,i >::type >::type

复杂度

线性。最多size<s1>::value次比较。

示例

typedef vector<char,int,unsigned,long,unsigned long> s1;
typedef list<char,int,unsigned,long,unsigned long> s2;

BOOST_MPL_ASSERT(( equal<s1,s2> ));