English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ set lower_bound()La funzione serve per restituire un iteratore che punta alla chiave nel contenitore set, equivalente al valore passato come parametro.
Se non c'è val nella contenitore di insieme, restituirà un iteratore che punta al prossimo elemento maggiore di val.
iterator lower_bound(const value_type& val); //C++ 11 之前 iterator lower_bound(const value_type& val); //从 C++ 11 开始 const_iterator lower_bound(const value_type& val) const; //从 C++ 11 开始
val: Valore da cercare nel contenitore della集合.
Restituisce un puntatore all'elemento del contenitore di set equivalente al valore passato come parametro. Se non esiste tale elemento, restituisce end().
La dimensione è logaritmica.
Nessuna modifica.
Il contenitore viene esaminato (versioni const e non const non possono modificare il contenitore).
L'accesso simultaneo agli elementi della集合 è sicuro.
Se viene sollevata un'eccezione, non ci sono modifiche nel contenitore.
Diamo un'occhiata a un esempio semplice per ottenere il limite inferiore di una chiave data:
#include<iostream> #include<set> using namespace std; int main(void) { set<char> m = {'a', 'b', 'c', 'd', 'e'}; auto it = m.lower_bound('c'); cout << "Limite inferiore (=) " << *it; return 0; }
Output:
Limite inferiore (=) c
Nell'esempio precedente, il limite inferiore di c è c.
Diamo un'occhiata a un esempio semplice per cancellare gli elementi del set da inferiore a superiore:
#include<iostream> #include<set> using namespace std; int main() { set<int> myset; set<int>::iterator itlow, itup; for (int i = 1; i < 10; i++) myset.insert(i * 10); // 10 20 30 40 50 60 70 80 90 itlow = myset.lower_bound(30); // ^ itup = myset.upper_bound(60); // ^ myset.erase(itlow, itup); // 10 20 70 80 90 std::cout << "myset contiene:"; for (set<int>::iterator it = myset.begin(); it != myset.end(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
Output:
myset contiene: 10 20 70 80 90
Nell'esempio precedente, la funzione delete() elimina gli elementi dal set dal limite inferiore (=) al limite superiore (>), e stampa il contenuto rimanente.
Vediamo un esempio semplice:
#include<set> #include<iostream> using namespace std; int main() { using namespace std; set<int> s1; set<int>::const_iterator s1_AcIter, s1_RcIter; s1.insert(10); s1.insert(20); s1.insert(30); s1_RcIter = s1.lower_bound(20); cout << "L'elemento dell'insieme s1 con chiave 20 è: " << *s1_RcIter << "." << endl; s1_RcIter = s1.lower_bound(40); // restituire end() se non viene trovata una chiave corrispondente if (s1_RcIter == s1.end()) cout << "L'insieme s1 non ha un elemento con chiave 40." << endl; else cout << "L'elemento dell'insieme s1 con chiave 40 è: " << *s1_RcIter << "." << endl; // trovare l'elemento in una posizione specifica dell'insieme // utilizzare l'iteratore dereferenziato per posizionarsi s1_AcIter = s1.end(); s1_AcIter--; s1_RcIter = s1.lower_bound(*s1_AcIter); cout << "L'elemento dell'insieme s1 che corrisponde alla chiave dell'ultimo elemento è:" << *s1_RcIter << "." << endl; return 0; }
Output:
L'elemento dell'insieme s1 con chiave 20 è: 20. L'insieme s1 non ha un elemento con chiave 40. L'elemento dell'insieme s1 che corrisponde alla chiave dell'ultimo elemento è: 30.
Vediamo un esempio semplice:
#include<set> #include<iostream> using namespace std; int main() { set<int> mp; // inserire elementi in ordine casuale mp.insert(2); mp.insert(1); mp.insert(5); mp.insert(4); cout << "Elemento è: \n"; for (auto it = mp.begin(); it != mp.end(); it++) { cout << (*it) << endl; } // quando 2 esiste auto it = mp.lower_bound(2); cout << "Il limite inferiore della chiave 2 è \""; cout << (*it) << endl; // quando non esiste 3 // puntare al maggiore successivo di 3 it = mp.lower_bound(3); cout << "Il limite inferiore della chiave 3 è \"4\";", cout << (*it) << endl; // Quando superiamo 6 it = mp.lower_bound(6); cout << "Il limite inferiore della chiave 6 è \"4\";", cout << (*it); return 0; }
Output:
L'elemento è: 1 2 4 5 Il limite inferiore della chiave 2 è 2 Il limite inferiore della chiave 3 è 4 Il limite inferiore della chiave 6 è 4
Nell'esempio sopra, quando cerchiamo di trovare il valore inferiore al di fuori del contenitore, o in altre parole, quando non esiste tale valore inferiore nel contenitore set, torneremo a end.