<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
pair
pokud 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
true
pair
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
true
pair
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.