1. equal
[first, last)与[x, x + last - first)每个对应位置的元素相等, 返回true.(默认使用等于操作符)重载版本使用输入的操作符代替默认的等于操作符
函数原形
template<class InIt1, class InIt2> bool equal(InIt1 first, InIt1 last, InIt2 x);template<class InIt1, class InIt2, class Pred> bool equal(InIt1 first, InIt1 last, InIt2 x, Pred pr);
说明:
1. [first, last)与[x, x + last - first)明显第一点就是数量上要相等, 然后对应位置的值相等.
2. 如果[first, last).size > [x, x + last - first).size, 那么就会报错.(在equal内部, 进行++x操作, 如果越界了就会报错).
3. 必须从[first, last)每一个元素都要匹配.
/////////////////////////////////////////////////////////////
#include "stdafx.h"
#include <algorithm>
#include <numeric>
#include <functional>
#include <vector>
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<int> nV, nV1;
std::vector<int>::iterator iter;
std::vector<int>::iterator iterBegin;
std::vector<int>::iterator iterEnd;
////////////////////////////////
nV.clear();
nV.push_back(14);
nV.push_back(15);
nV.push_back(16);
nV1.clear();
nV1.push_back(14);
nV1.push_back(15);
nV1.push_back(16);
iterBegin = nV1.begin();
iterEnd = nV1.end();
std::equal(iterBegin, iterEnd, nV.begin()); // 返回true
////////////////////////////////
nV.clear();
nV.push_back(14);
nV.push_back(16);
nV.push_back(15);
nV.push_back(17);
nV1.clear();
nV1.push_back(14);
nV1.push_back(16);
nV1.push_back(15);
iterBegin = nV1.begin();
iterEnd = nV1.end();
std::equal(iterBegin, iterEnd, nV.begin()); // 返回true
////////////////////////////////
nV.clear();
nV.push_back(14);
nV.push_back(17);
nV.push_back(15);
nV.push_back(16);
nV1.clear();
nV1.push_back(14);
nV1.push_back(16);
nV1.push_back(15);
nV1.push_back(16);
iterBegin = nV1.begin();
iterEnd = nV1.end();
std::equal(iterBegin, iterEnd, nV.begin()); // 返回false
////////////////////////////////
nV.clear();
nV.push_back(14);
nV.push_back(15);
nV.push_back(16);
nV1.clear();
nV1.push_back(14);
nV1.push_back(15);
nV1.push_back(16);
nV1.pus

本文详细介绍了C++ STL中的关系算法,包括equal用于序列的相等比较,includes判断元素是否包含,lexicographical_compare进行字典序比较,以及max/min_element用于找出序列中的最大/最小元素。同时,文章提到了在使用这些算法时需要注意的边界问题。
最低0.47元/天 解锁文章
2680

被折叠的 条评论
为什么被折叠?



