Freigeben über


operator== (<iterator>)

Testet, ob das Iterator-Objekt links vom Operator gleich dem Iterator-Objekt rechts vom Operator ist.

template<class RandomIterator1, class RandomIterator2>
    bool operator==(
        const move_iterator<RandomIterator1>& _Left,
        const move_iterator<RandomIterator2>& _Right
    );
template<class RandomIterator1, class RandomIterator2>
    bool operator==(
        const reverse_iterator<RandomIterator1>& _Left,
        const reverse_iterator<RandomIterator2>& _Right
   );
template<class Type, class CharType, class Traits, class Distance>
   bool operator==(
      const istream_iterator<Type, CharType, Traits, Distance>& _Left,
      const istream_iterator<Type, CharType, Traits, Distance>& _Right
   );
template<class CharType, class Tr>
   bool operator==(
      const istreambuf_iterator<CharType, Traits>& _Left,
      const istreambuf_iterator<CharType, Traits>& _Right
);

Parameter

  • _Left
    Ein Objekt des Typiterators.

  • _Right
    Ein Objekt des Typiterators.

Rückgabewert

true, wenn die Iteratorobjekte gleich sind; false, wenn die Iteratorobjekte nicht gleich sind.

Hinweise

Ein Iteratorobjekt entspricht andere, wenn sie dieselben Elemente in einem Container behandeln. Wenn zwei Iteratoren auf verschiedenen Elementen in einem Container zeigen, dann sind sie nicht gleich.

Die erste Rückgabe true mit zwei Vorlagenoperatoren nur, wenn _Left und _Right der gleiche Iterator speichern. Beim dritten Vorlagenoperatorrückgaben reihen nur, wenn _Left und _Right die gleichen Stream-Zeiger speichern. Der vierte Vorlagenoperator gibt _Left.equal (_Right) zurück.

Beispiel

// iterator_op_eq.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for ( i = 1 ; i < 6 ; ++i )
   {
      vec.push_back ( 2 * i );
   }
   
   vector <int>::iterator vIter;

   cout << "The vector vec is: ( ";
   for ( vIter = vec.begin( ) ; vIter != vec.end( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;

   // Initializing reverse_iterators to the last element
   vector <int>::reverse_iterator rVPOS1 = vec.rbegin ( ), 
           rVPOS2 = vec.rbegin ( );
   
   cout << "The iterator rVPOS1 initially points to the first "
        << "element\n in the reversed sequence: "
        << *rVPOS1 << "." << endl;

   if ( rVPOS1 == rVPOS2 )
      cout << "The iterators are equal." << endl;
   else
      cout << "The iterators are not equal." << endl;

   rVPOS1++;
   cout << "The iterator rVPOS1 now points to the second "
        << "element\n in the reversed sequence: "
        << *rVPOS1 << "." << endl;

   if ( rVPOS1 == rVPOS2 )
      cout << "The iterators are equal." << endl;
   else
      cout << "The iterators are not equal." << endl;
}
  

Anforderungen

Header: <Iterator>

Namespace: std

Siehe auch

Referenz

Standardvorlagenbibliothek