當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ equal()用法及代碼示例


C++ 算法 equal()function 比較兩個容器中的元素,如果發現兩個容器中的所有元素都匹配,則返回真值。第一個範圍從 [first1,last1) 開始,第二個範圍從 first2 開始。

用法

template<class InputIterator1, class InputIterator2> bool equal(InputIterator1 first1, InputIterator1 last1,InputIterator2 first2);
template<class InputIterator1, class InputIterator2, class BinaryPredicate> bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first1, BinaryPredicate pred);

參數

first1:它是[first1,last1)第一個元素的輸入迭代器。

last1:它是[first1,last1)最後一個元素的輸入迭代器。

first2:它是[first2,last2)第一個元素的輸入迭代器。

pred: 它是一個二元函數,它接受兩個元素作為參數並執行函數設計的任務。

返回值

如果兩個容器中的所有元素都匹配,則該函數返回值 true,否則返回 false。

例子1

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool newpredicate(int m, int n)
{
	return(m==n);
}
int main()
{
	int newints[]={20,40,60,80,100};
	std::vector<int> newvector(newints, newints+5);
	if(std::equal(newvector.begin(),newvector.end(),newints))
	std::cout<<"Both the containers have matching elements.\n";
	else
	std::cout<<"Both the containers have difference elements.\n";
	newvector[3]=81;
	if(std::equal(newvector.begin(),newvector.end(),newints,newpredicate))
	std::cout<<"Both the containers have equal containers.\n";
	else
	std::cout<<"Both the containers do not have equal elements. \n";
	return 0;
}

輸出:

Both the containers have matching elements.
Both the containers do not have equal elements.

例子2

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int u1[]={10,20,30,40,50};
	std::vector<int> vec_1(u1,u1+sizeof(u1)/sizeof(int));
	std::cout<<"The vector consists of:";
	for(unsigned int k=0; k<vec_1.size(); k++)
	std::cout<<" "<<vec_1[k];
	std::cout<<"\n";
	if(std::equal(vec_1.begin(),vec_1.end(),u1))
	std::cout<<"Both the containers have equal elements.\n";
	else
	cout<<"Both containers have different elements.";
}

輸出:

The vector consists of:10, 20,30,40,50
Both the containers have equal elements.

複雜度

該函數從 first1 元素到 last1 元素具有線性複雜度。

數據競爭

訪問兩個範圍內的對象。

異常

如果任何參數拋出異常,該函數將拋出異常。






相關用法


注:本文由純淨天空篩選整理自 C++ Algorithm Function equal()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。