Sdílet prostřednictvím


<utility> – operátory

Poznámka:

Operátory používající Type& jsou zahrnuty v části namespace rel_ops.

operator!=

Testuje, jestli se objekt páru na levé straně operátoru nerovná spárování objektu na pravé straně.

template <class Type>
    constexpr bool operator!=(const Type& left, const Type& right);

template <class T, class U>
    constexpr bool operator!=(const pair<T, U>& left, const pair<T, U>& right);

Parametry

Vlevo
Objekt typu pair.

Vpravo
Objekt typu pair.

Návratová hodnota

true pokud se páry nerovnají; false pokud jsou páry stejné.

Poznámky

Jedna dvojice je rovna druhé dvojici, pokud je každý z příslušných prvků roven. Dva páry jsou nerovné, pokud první nebo druhý prvek jednoho není roven odpovídajícímu prvku druhého páru.

Příklad

// utility_op_ne.cpp
// compile with: /EHsc
#include <utility>
#include <iomanip>
#include <iostream>

int main( )
{
   using namespace std;
   pair <int, double> p1, p2, p3;

   p1 = make_pair ( 10, 1.11e-1 );
   p2 = make_pair ( 1000, 1.11e-3 );
   p3 = make_pair ( 10, 1.11e-1 );

   cout.precision ( 3 );
   cout << "The pair p1 is: ( " << p1.first << ", "
        << p1.second << " )." << endl;
   cout << "The pair p2 is: ( " << p2.first << ", "
        << p2.second << " )." << endl;
   cout << "The pair p3 is: ( " << p3.first << ", "
        << p3.second << " )." << endl << endl;

   if ( p1 != p2 )
      cout << "The pairs p1 and p2 are not equal." << endl;
   else
      cout << "The pairs p1 and p2 are equal." << endl;

   if ( p1 != p3 )
      cout << "The pairs p1 and p3 are not equal." << endl;
   else
      cout << "The pairs p1 and p3 are equal." << endl;
}
The pair p1 is: ( 10, 0.111 ).
The pair p2 is: ( 1000, 0.00111 ).
The pair p3 is: ( 10, 0.111 ).

The pairs p1 and p2 are not equal.
The pairs p1 and p3 are equal.

operator==

Testuje, jestli se objekt páru na levé straně operátoru rovná spárování objektu na pravé straně.

template <class T, class U>
constexpr bool operator==(const pair<T, U>& left, const pair<T, U>& right);

Parametry

Vlevo
Objekt typu pair.

Vpravo
Objekt typu pair.

Návratová hodnota

true jsou-li páry rovny; false pairpokud s nejsou rovny.

Poznámky

Jedna dvojice je rovna druhé dvojici, pokud je každý z příslušných prvků roven. Funkce vrátí left. nejprve == right. první & left. druhý == right. druhý. Dva páry jsou nerovné, pokud první nebo druhý prvek jednoho není roven odpovídajícímu prvku druhého páru.

Příklad

// utility_op_eq.cpp
// compile with: /EHsc
#include <utility>
#include <iomanip>
#include <iostream>

int main( )
{
   using namespace std;
   pair <int, double> p1, p2, p3;

   p1 = make_pair ( 10, 1.11e-1 );
   p2 = make_pair ( 1000, 1.11e-3 );
   p3 = make_pair ( 10, 1.11e-1 );

   cout.precision ( 3 );
   cout << "The pair p1 is: ( " << p1.first << ", "
        << p1.second << " )." << endl;
   cout << "The pair p2 is: ( " << p2.first << ", "
        << p2.second << " )." << endl;
   cout << "The pair p3 is: ( " << p3.first << ", "
        << p3.second << " )." << endl << endl;

   if ( p1 == p2 )
      cout << "The pairs p1 and p2 are equal." << endl;
   else
      cout << "The pairs p1 and p2 are not equal." << endl;

   if ( p1 == p3 )
      cout << "The pairs p1 and p3 are equal." << endl;
   else
      cout << "The pairs p1 and p3 are not equal." << endl;
}

operator<

Testuje, zda je objekt páru na levé straně operátoru menší než párový objekt na pravé straně.

template <class T, class U>
constexpr bool operator<(const pair<T, U>& left, const pair<T, U>& right);

Parametry

Vlevo
Objekt typu pair na levé straně operátoru.

Vpravo
Objekt typu pair na pravé straně operátoru.

Návratová hodnota

true je-li pair na levé straně operátoru přísně menší než pair na pravé straně operátoru; jinak false.

Poznámky

Objekt left pair je řečeno, že je přísně menší než pair right objekt, pokud je vlevo menší než a není rovno vpravo.

Při porovnání párů mají první prvky dvou dvojic první prvky hodnot nejvyšší prioritu. Pokud se liší, výsledek jejich porovnání se bere jako výsledek porovnání dvojice. Pokud se hodnoty prvních prvků neliší, pak se hodnoty druhého elementu porovnávají a výsledek jejich porovnání se bere jako výsledek porovnání dvojice.

Příklad

// utility_op_lt.cpp
// compile with: /EHsc
#include <utility>
#include <iomanip>
#include <iostream>

int main( )
{
   using namespace std;
   pair <int, double> p1, p2, p3;

   p1 = make_pair ( 10, 2.22e-1 );
   p2 = make_pair ( 100, 1.11e-1 );
   p3 = make_pair ( 10, 1.11e-1 );

   cout.precision ( 3 );
   cout << "The pair p1 is: ( " << p1.first << ", "
        << p1.second << " )." << endl;
   cout << "The pair p2 is: ( " << p2.first << ", "
        << p2.second << " )." << endl;
   cout << "The pair p3 is: ( " << p3.first << ", "
        << p3.second << " )." << endl << endl;

   if ( p1 < p2 )
      cout << "The pair p1 is less than the pair p2." << endl;
   else
      cout << "The pair p1 is not less than the pair p2." << endl;

   if ( p1 < p3 )
      cout << "The pair p1 is less than the pair p3." << endl;
   else
      cout << "The pair p1 is not less than the pair p3." << endl;
}
The pair p1 is: ( 10, 0.222 ).
The pair p2 is: ( 100, 0.111 ).
The pair p3 is: ( 10, 0.111 ).

The pair p1 is less than the pair p2.
The pair p1 is not less than the pair p3.

operator<=

Testuje, zda je objekt páru na levé straně operátoru menší nebo roven spárování objektu na pravé straně.

template <class Type>
constexpr bool operator<=(const Type& left, const Type& right);

template <class T, class U>
constexpr bool operator<=(const pair<T, U>& left, const pair<T, U>& right);

Parametry

Vlevo
Objekt typu pair na levé straně operátoru.

Vpravo
Objekt typu pair na pravé straně operátoru.

Návratová hodnota

true je-li pair levá strana operátoru menší nebo rovna pair pravé straně operátoru; jinak false.

Poznámky

Při porovnání párů mají první prvky dvou dvojic první prvky hodnot nejvyšší prioritu. Pokud se liší, výsledek jejich porovnání se bere jako výsledek porovnání dvojice. Pokud se hodnoty prvních prvků neliší, pak se hodnoty druhého elementu porovnávají a výsledek jejich porovnání se bere jako výsledek porovnání dvojice.

Příklad

// utility_op_le.cpp
// compile with: /EHsc
#include <utility>
#include <iomanip>
#include <iostream>

int main( )
{
   using namespace std;
   pair <int, double> p1, p2, p3, p4;

   p1 = make_pair ( 10, 2.22e-1 );
   p2 = make_pair ( 100, 1.11e-1 );
   p3 = make_pair ( 10, 1.11e-1 );
   p4 = make_pair ( 10, 2.22e-1 );

   cout.precision ( 3 );
   cout << "The pair p1 is: ( " << p1.first << ", "
        << p1.second << " )." << endl;
   cout << "The pair p2 is: ( " << p2.first << ", "
        << p2.second << " )." << endl;
   cout << "The pair p3 is: ( " << p3.first << ", "
        << p3.second << " )." << endl;
   cout << "The pair p4 is: ( " << p4.first << ", "
        << p4.second << " )." << endl << endl;

   if ( p1 <= p2 )
      cout << "The pair p1 is less than or equal to the pair p2." << endl;
   else
      cout << "The pair p1 is greater than the pair p2." << endl;

   if ( p1 <= p3 )
      cout << "The pair p1 is less than or equal to the pair p3." << endl;
   else
      cout << "The pair p1 is greater than the pair p3." << endl;

   if ( p1 <= p4 )
      cout << "The pair p1 is less than or equal to the pair p4." << endl;
   else
      cout << "The pair p1 is greater than the pair p4." << endl;
}
The pair p1 is: ( 10, 0.222 ).
The pair p2 is: ( 100, 0.111 ).
The pair p3 is: ( 10, 0.111 ).
The pair p4 is: ( 10, 0.222 ).

The pair p1 is less than or equal to the pair p2.
The pair p1 is greater than the pair p3.
The pair p1 is less than or equal to the pair p4.

operator>

Testuje, zda je objekt páru na levé straně operátoru větší než párový objekt na pravé straně.

template <class Type>
constexpr bool operator>(const Type& left, const Type& right);

template <class T, class U>
constexpr bool operator>(const pair<T, U>& left, const pair<T, U>& right);

Parametry

Vlevo
Objekt typu pair na levé straně operátoru.

Vpravo
Objekt typu pair na pravé straně operátoru.

Návratová hodnota

truepair je-li na levé straně operátoru přísně větší než pair na pravé straně operátoru; jinak false.

Poznámky

Objekt left pair je řečeno, že je přísně větší než pair right objekt, pokud je vlevo větší než a není rovno doprava.

Při porovnání párů mají první prvky dvou dvojic první prvky hodnot nejvyšší prioritu. Pokud se liší, výsledek jejich porovnání se bere jako výsledek porovnání dvojice. Pokud se hodnoty prvních prvků neliší, pak se hodnoty druhého elementu porovnávají a výsledek jejich porovnání se bere jako výsledek porovnání dvojice.

Příklad

// utility_op_gt.cpp
// compile with: /EHsc
#include <utility>
#include <iomanip>
#include <iostream>

int main( )
{
   using namespace std;
   pair <int, double> p1, p2, p3, p4;

   p1 = make_pair ( 10, 2.22e-1 );
   p2 = make_pair ( 100, 1.11e-1 );
   p3 = make_pair ( 10, 1.11e-1 );
   p4 = make_pair ( 10, 2.22e-1 );

   cout.precision ( 3 );
   cout << "The pair p1 is: ( " << p1.first << ", "
        << p1.second << " )." << endl;
   cout << "The pair p2 is: ( " << p2.first << ", "
        << p2.second << " )." << endl;
   cout << "The pair p3 is: ( " << p3.first << ", "
        << p3.second << " )." << endl;
   cout << "The pair p4 is: ( " << p4.first << ", "
        << p4.second << " )." << endl << endl;

   if ( p1 > p2 )
      cout << "The pair p1 is greater than the pair p2." << endl;
   else
      cout << "The pair p1 is not greater than the pair p2." << endl;

   if ( p1 > p3 )
      cout << "The pair p1 is greater than the pair p3." << endl;
   else
      cout << "The pair p1 is not greater than the pair p3." << endl;

   if ( p1 > p4 )
      cout << "The pair p1 is greater than the pair p4." << endl;
   else
      cout << "The pair p1 is not greater than the pair p4." << endl;
}
The pair p1 is: ( 10, 0.222 ).
The pair p2 is: ( 100, 0.111 ).
The pair p3 is: ( 10, 0.111 ).
The pair p4 is: ( 10, 0.222 ).

The pair p1 is not greater than the pair p2.
The pair p1 is greater than the pair p3.
The pair p1 is not greater than the pair p4.

operator>=

Testuje, zda je objekt páru na levé straně operátoru větší nebo roven objektu dvojice na pravé straně.

template <class Type>
    constexpr bool operator>=(const Type& left, const Type& right);

template <class T, class U>
    constexpr bool operator>=(const pair<T, U>& left, const pair<T, U>& right);

Parametry

Vlevo
Objekt typu pair na levé straně operátoru.

Vpravo
Objekt typu pair na pravé straně operátoru.

Návratová hodnota

truepair je-li levá strana operátoru větší nebo rovna pair pravé straně operátoru; jinak false.

Poznámky

Při porovnání párů mají první prvky dvou dvojic první prvky hodnot nejvyšší prioritu. Pokud se liší, výsledek jejich porovnání se bere jako výsledek porovnání dvojice. Pokud se hodnoty prvních prvků neliší, pak se hodnoty druhého elementu porovnávají a výsledek jejich porovnání se bere jako výsledek porovnání dvojice.

Příklad

// utility_op_ge.cpp
// compile with: /EHsc
#include <utility>
#include <iomanip>
#include <iostream>

int main( )
{
   using namespace std;
   pair <int, double> p1, p2, p3, p4;

   p1 = make_pair ( 10, 2.22e-1 );
   p2 = make_pair ( 100, 1.11e-1 );
   p3 = make_pair ( 10, 1.11e-1 );
   p4 = make_pair ( 10, 2.22e-1 );

   cout.precision ( 3 );
   cout << "The pair p1 is: ( " << p1.first << ", "
        << p1.second << " )." << endl;
   cout << "The pair p2 is: ( " << p2.first << ", "
        << p2.second << " )." << endl;
   cout << "The pair p3 is: ( " << p3.first << ", "
        << p3.second << " )." << endl;
   cout << "The pair p4 is: ( " << p4.first << ", "
        << p4.second << " )." << endl << endl;

   if ( p1 >= p2 )
      cout << "Pair p1 is greater than or equal to pair p2." << endl;
   else
      cout << "The pair p1 is less than the pair p2." << endl;

   if ( p1 >= p3 )
      cout << "Pair p1 is greater than or equal to pair p3." << endl;
   else
      cout << "The pair p1 is less than the pair p3." << endl;

   if ( p1 >= p4 )
      cout << "Pair p1 is greater than or equal to pair p4." << endl;
   else
      cout << "The pair p1 is less than the pair p4." << endl;
}
The pair p1 is: ( 10, 0.222 ).
The pair p2 is: ( 100, 0.111 ).
The pair p3 is: ( 10, 0.111 ).
The pair p4 is: ( 10, 0.222 ).

The pair p1 is less than the pair p2.
Pair p1 is greater than or equal to pair p3.
Pair p1 is greater than or equal to pair p4.