当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ std::equal()用法及代码示例


std::equal()有助于将[first_1,last_1)范围内的元素与从first_2开始的范围内的元素进行比较。
语法1:

template 
  bool equal (InputIterator1 first1, InputIterator1 last1,
              InputIterator2 first2)
	
first_1, last_1:Initial and final positions of the first
    sequence. All the elements are present within a range [first_1,last_1)
first2:Initial position of the second sequence.

返回:
true, if all of the elements in both ranges match; otherwise false
// C++ program illustrating 
// use of  bool equal (InputIterator1 first1, InputIterator1 last1, 
// InputIterator2 first2) 
      
  
#include <bits/stdc++.h> 
  
int main() 
{ 
    int v1[] = { 10, 20, 30, 40, 50 }; 
    std::vector<int> vector_1 (v1, v1 + sizeof(v1) / sizeof(int) ); 
  
    // Printing vector1 
    std::cout << "Vector contains:"; 
    for (unsigned int i = 0; i < vector_1.size(); i++) 
        std::cout << " " << vector_1[i]; 
    std::cout << "\n"; 
  
    // using std::equal() 
    // Comparison within default constructor 
    if ( std::equal (vector_1.begin(), vector_1.end(), v1) ) 
        std::cout << "The contents of both sequences are equal.\n"; 
    else
        printf("The contents of both sequences differ."); 
  
}

输出:

Vector contains: 10, 20, 30, 40, 50
The contents of both sequences are equal.

语法2:


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

first_1, last_1:Initial and final positions of the first
    sequence. All the elements are present within a range [first_1,last_1)
first2:Initial position of the second sequence.
pred:Binary function that accepts two elements as argument 
      and returns a value convertible to boolean.

返回:
true, if all of the elements in both ranges match; otherwise false
// C++ program illustrating 
// use of bool equal (InputIterator1 first1, InputIterator1 last1, 
// InputIterator2 first2, BinaryPredicate pred); 
  
#include <bits/stdc++.h> 
  
bool pred(int i, int j) 
{ 
    return (i != j); 
} 
  
int main() 
{ 
    int v1[] = { 10, 20, 30, 40, 50 }; 
    std::vector<int> vector_1 (v1, v1 + sizeof(v1) / sizeof(int) ); 
  
    // Printing vector1 
    std::cout << "Vector contains:"; 
    for (unsigned int i = 0; i < vector_1.size(); i++) 
        std::cout << " " << vector_1[i]; 
    std::cout << "\n"; 
  
    // using std::equal() 
    // Comparison based on pred 
    if ( std::equal (vector_1.begin(), vector_1.end(), v1, pred) ) 
        std::cout << "The contents of both sequences are equal.\n"; 
    else
        printf("The contents of both sequences differ."); 
  
}

输出:

Vector contains: 10, 20, 30, 40, 50
The contents of both sequences differ.

相关文章:



相关用法


注:本文由纯净天空筛选整理自 std::equal() in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。