std::equal_range
![]() | Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate. La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Defined in header <algorithm> | ||
template<class ForwardIt, class T > std::pair<ForwardIt,ForwardIt> | (1) | |
template<class ForwardIt, class T, class Compare > std::pair<ForwardIt,ForwardIt> | (2) | |
value
nel [first, last)
campo ordinato. L'intervallo è definito da due iteratori, uno punta al primo elemento' non inferiore value
e un'altra punta al primo elemento' superiori rispetto value
. L'iteratore prima può essere alternativamente ottenuto con lower_bound()
, il secondo - con upper_bound()
.value
in the sorted range [first, last)
. The range is defined by two iterators, one pointing to the first element that is not less than value
and another pointing to the first element greater than value
. The first iterator may be alternatively obtained with lower_bound()
, the second - with upper_bound()
.You can help to correct and verify the translation. Click here for instructions.
comp
.comp
.You can help to correct and verify the translation. Click here for instructions.
Indice |
[modifica]Parametri
first, last | - | la gamma di elementi da esaminare Original: the range of elements to examine The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
value | - | valore per confrontare gli elementi Original: value to compare the elements to The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
comp | - | comparison function which returns true if the first argument is less than the second. The signature of the comparison function should be equivalent to the following: bool cmp(const Type1 &a, const Type2 &b); The signature does not need to have const&, but the function must not modify the objects passed to it. |
Type requirements | ||
-ForwardIt must meet the requirements of ForwardIterator . |
[modifica]Valore di ritorno
value
e la seconda punta al primo elemento' maggiore rispetto value
. value
and the second pointing to the first element greater than value
. You can help to correct and verify the translation. Click here for instructions.
value
, last
viene restituito come primo elemento. Allo stesso modo se non ci sono elementi superiore di value
, last
viene restituito come il secondo elementovalue
, last
is returned as the first element. Similarly if there are no elements greater than value
, last
is returned as the second elementYou can help to correct and verify the translation. Click here for instructions.
[modifica]Complessità
first
e last
first
and last
You can help to correct and verify the translation. Click here for instructions.
[modifica]Possibile implementazione
First version |
---|
template<class ForwardIt, class T std::pair<ForwardIt,ForwardIt> equal_range(ForwardIt first, ForwardIt last, const T& value){returnstd::make_pair(std::lower_bound(first, last, value), std::upper_bound(first, last, value));} |
Second version |
template<class ForwardIt, class T, class Compare>std::pair<ForwardIt,ForwardIt> equal_range(ForwardIt first, ForwardIt last, const T& value, Compare comp);{returnstd::make_pair(std::lower_bound(first, last, value, comp), std::upper_bound(first, last, value, comp));} |
[modifica]Esempio
#include <algorithm>#include <vector>#include <iostream> struct S {int number;char name; S (int number, char name ): number ( number ), name ( name ){} // only the number is relevant with this comparisonbool operator<(const S& s )const{return number < s.number;}}; int main(){std::vector<S> vec ={{1,'A'}, {2,'B'}, {2,'C'}, {2,'D'}, {3,'F'}, {4,'G'}}; S value (2, '?'); auto p = std::equal_range(vec.begin(),vec.end(),value); for(auto i = p.first; i != p.second;++i )std::cout<< i->name <<' ';}
Output:
B C D
[modifica]Vedi anche
restituisce un iteratore al primo elemento' non inferiore al valore dato Original: returns an iterator to the first element not less than the given value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) | |
ritorna un iteratore al primo elemento' maggiore di un certo valore Original: returns an iterator to the first element greater than a certain value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) | |
determina se un elemento è presente in un certo intervallo Original: determines if an element exists in a certain range The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) |