Aracılığıyla paylaş


not_equal_to Yapısı

Bağımsız değişkenlerinde eşitsizlik işlemini (operator!=) gerçekleştiren ikili koşul.

Sözdizimi

template <class Type = void>
struct not_equal_to : public binary_function<Type, Type, bool>
{
    bool operator()(const Type& Left, const Type& Right) const;
};

// specialized transparent functor for operator!=
template <>
struct not_equal_to<void>
{
  template <class T, class U>
  auto operator()(T&& Left, U&& Right) const
    -> decltype(std::forward<T>(Left) != std::forward<U>(Right));
};

Parametreler

Tür, T, U
Belirtilen veya çıkarsanan türlerin işlenenlerini alan bir destekleyen herhangi bir operator!= tür.

Left
Eşitsizlik işleminin sol işleneni. Belirtilmemiş şablon, Tür türünde bir lvalue başvuru bağımsız değişkenini alır. Özelleştirilmiş şablon, T türünde lvalue ve rvalue başvuru bağımsız değişkenlerinin mükemmel bir şekilde iletilmesine neden olur.

Right
Eşitsizlik işleminin doğru işleneni. Belirtilmemiş şablon, Tür türünde bir lvalue başvuru bağımsız değişkenini alır. Özelleştirilmiş şablon, çıkarılmıştır türü U olan lvalue ve rvalue başvuru bağımsız değişkenlerinin mükemmel iletilmesine yöneliktir.

Dönüş Değeri

sonucu.Left != Right Özelleştirilmiş şablon, tarafından operator!=döndürülen türe sahip olan sonucun mükemmel iletilmesine sahiptir.

Açıklamalar

Tür türündeki nesneler eşitlik ile karşılaştırılabilir olmalıdır. Bu, operator!= nesne kümesinde tanımlanan öğesinin denklik ilişkisinin matematiksel özelliklerini karşılar. Tüm yerleşik sayısal ve işaretçi türleri bu gereksinimi karşılar.

Örnek

// functional_not_equal_to.cpp
// compile with: /EHsc
#include <vector>
#include <functional>
#include <algorithm>
#include <iostream>

using namespace std;

int main( )
{
   vector <double> v1, v2, v3 (6);
   vector <double>::iterator Iter1, Iter2, Iter3;

   int i;
   for ( i = 0 ; i <= 5 ; i+=2 )
   {
      v1.push_back( 2.0 *i );
      v1.push_back( 2.0 * i + 1.0 );
   }

   int j;
   for ( j = 0 ; j <= 5 ; j+=2 )
   {
      v2.push_back( - 2.0 * j );
      v2.push_back( 2.0 * j + 1.0 );
   }

   cout << "The vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   cout << "The vector v2 = ( " ;
   for ( Iter2 = v2.begin( ) ; Iter2 != v2.end( ) ; Iter2++ )
      cout << *Iter2 << " ";
   cout << ")" << endl;

   // Testing for the element-wise equality between v1 & v2
   transform ( v1.begin( ), v1.end( ), v2.begin( ), v3.begin ( ),
      not_equal_to<double>( ) );

   cout << "The result of the element-wise not_equal_to comparison\n"
      << "between v1 & v2 is: ( " ;
   for ( Iter3 = v3.begin( ) ; Iter3 != v3.end( ) ; Iter3++ )
      cout << *Iter3 << " ";
   cout << ")" << endl;
}
The vector v1 = ( 0 1 4 5 8 9 )
The vector v2 = ( -0 1 -4 5 -8 9 )
The result of the element-wise not_equal_to comparison
between v1 & v2 is: ( 0 0 1 0 1 0 )