operator==,!=,<,<=,>,>=(std::tuple)
Da cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Definido no cabeçalho <tuple> | ||
template<class... TTypes, class... UTypes> bool operator==(const tuple<TTypes...>& lhs, | (1) | (desde C++11) |
template<class... TTypes, class... UTypes> bool operator!=(const tuple<TTypes...>& lhs, | (2) | (desde C++11) |
template<class... TTypes, class... UTypes> bool operator<(const tuple<TTypes...>& lhs, | (3) | (desde C++11) |
template<class... TTypes, class... UTypes> bool operator<=(const tuple<TTypes...>& lhs, | (5) | (desde C++11) |
template<class... TTypes, class... UTypes> bool operator>(const tuple<TTypes...>& lhs, | (4) | (desde C++11) |
template<class... TTypes, class... UTypes> bool operator>=(const tuple<TTypes...>& lhs, | (6) | (desde C++11) |
Compara cada elemento do
3-6) lhs
tupla com o elemento correspondente do rhs
tupla.Original:
Compares every element of the tuple
lhs
with the corresponding element of the tuple rhs
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Compara
lhs
e rhs
lexicographically, isto é, compara os primeiros elementos, se eles são equivalentes, compara os segundos elementos, se aqueles são equivalentes, compara os elementos terceiro, e assim por diante.Original:
Compares
lhs
and rhs
lexicographically, that is, compares the first elements, if they are equivalent, compares the second elements, if those are equivalent, compares the third elements, and so on.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Todos os operadores de comparação são curto-circuito, pois eles não acessar elementos de tupla, para além do que é necessário para determinar o resultado da comparação.
Original:
All comparison operators are short-circuited; they do not access tuple elements beyond what is necessary to determine the result of the comparison.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Índice |
[editar]Parâmetros
lhs, rhs | - | tuplas para comparar Original: tuples to compare The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[editar]Valor de retorno
1)true se std::get<i>(lhs)== std::get<i>(rhs) para todo i em
[0, sizeof...(Types))
, caso contrário false. Por dois retornos vazios tuplas true.Original:
true if std::get<i>(lhs)== std::get<i>(rhs) for all i in
[0, sizeof...(Types))
, otherwise false. For two empty tuples returns true.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
2) !(lhs == rhs)
3)(bool)(std::get<0>(lhs)< std::get<0>(rhs))||(!(bool)(std::get<0>(rhs)< std::get<0>(lhs))&& lhstail < rhstail), onde
lhstail
é lhs sem seu primeiro elemento, e rhstail
é rhs sem seu primeiro elemento. Por duas tuplas vazias, retorna false.Original:
(bool)(std::get<0>(lhs)< std::get<0>(rhs))||(!(bool)(std::get<0>(rhs)< std::get<0>(lhs))&& lhstail < rhstail), where
lhstail
is lhs without its first element, and rhstail
is rhs without its first element. For two empty tuples, returns false.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
4) !(lhs < rhs)
5) rhs < lhs
6) !(rhs < lhs)
[editar]Exemplo
Porque <operador é definido para tuplas, recipientes de tuplas podem ser classificados .
Original:
Because operator< is defined for tuples, containers of tuples can be sorted.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <iostream>#include <tuple>#include <vector>#include <algorithm>int main(){std::vector<std::tuple<int, std::string, float>> v; v.emplace_back(2, "baz", -0.1); v.emplace_back(2, "bar", 3.14); v.emplace_back(1, "foo", 100.1);std::sort(v.begin(), v.end()); for(auto p: v){std::cout<<"("<< std::get<0>(p)<<", "<< std::get<1>(p)<<", "<< std::get<2>(p)<<")\n";}}
Saída:
(1, foo, 100.1) (2, bar, 3.14) (2, baz, -0.1)