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. |
Elemento definito nell'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) { return std::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); { return std::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 comparison bool 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) |