English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ Set lower_bound()Fonction utilisée pour renvoyer un itérateur pointant sur la clé du conteneur set, équivalente à l'élément passé en paramètre val.
Si val n'existe pas dans le conteneur de l'ensemble, il renvoie un itérateur pointant sur l'élément suivant qui est plus grand que val.
iterator lower_bound (const value_type& val); //C++ 11 avant iterator lower_bound (const value_type& val); //de C++ 11Début const_iterator lower_bound (const value_type& val) const; //de C++ 11Début
val: La valeur à chercher dans le conteneur de collection.
Il renvoie un itérateur pointant sur une valeur de conteneur de set, équivalent à l'élément passé en paramètre val. Si aucun tel élément n'existe, il renvoie end().
Taille logarithmique.
Aucun changement.
Le conteneur est consulté (les versions const et non const ne peuvent pas modifier le conteneur).
L'accès simultané aux éléments de l'ensemble est sûr.
Si une exception est levée, le conteneur n'est pas modifié.
Laissez-nous voir un exemple simple pour obtenir le bas d'une clé donnée :
#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 << "Bas (=) " << *it; return 0; }
Sortie :
Bas (=) c
Dans cet exemple, le bas est c.
Laissez-nous voir un exemple simple, supprimer les éléments du set de bas en haut :
#include <iostream> #include <set> using namespace std; int main () { set<int> myset; set<int>::iterator itlow,itup; for (int i=1; i<10; i++) mon insertion(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 contient:"; for (set<int>::iterator it=myset.begin(); it!=myset.end(); ++it) cout << " " << *it; cout << "\n"; return 0; }
Sortie :
myset contient: 10 20 70 80 90
Dans l'exemple ci-dessus, la fonction delete() supprime les éléments de l'ensemble set à partir de la borne inférieure (=) à la borne supérieure (>), et imprime le reste.
Voyons un exemple simple :
#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'ensemble s1la clé est2Les éléments de 0 sont: " << *s1_RcIter << "." << endl; s1_RcIter = s1.lower_bound( 40 ); // si aucune clé correspondante n'est trouvée, retourne end() if ( s1_RcIter == s1.end( ) cout << "l'ensemble s1Il n'y a pas de clé égale à40. Les éléments sont: " << endl; else cout << "l'ensemble est s1et la clé est4Les éléments de 0 sont: " << *s1_RcIter << "." << endl; //on peut trouver l'élément à une position spécifique dans l'ensemble //en utilisant des itérateurs déréférencés pour localiser la position s1_AcIter = s1.end( ); s1_AcIter--; s1_RcIter = s1.lower_bound( *s1_AcIter ); cout << "s1Les éléments dont la clé correspond à la clé de l'élément dernier sont:" << *s1_RcIter << "." << endl; return 0; }
Sortie :
l'ensemble s1la clé est2Les éléments de 0 sont: 20. l'ensemble s1Il n'y a pas de clé égale à4Les éléments de 0. s1Les éléments dont la clé correspond à la clé de l'élément dernier sont:30.
Voyons un exemple simple :
#include<set> #include<iostream> using namespace std; int main() { set<int> mp; // insérer des éléments dans un ordre aléatoire mp.insert( 2 ); mp.insert( 1 ); mp.insert( 5 ); mp.insert( 4 ); cout << "element est: \n"; for (auto it = mp.begin(); it != mp.end(); it++) { cout << (*it) << endl; } //Lorsque2Il existe auto it = mp.lower_bound(2); cout << "Clé2La borne inférieure est "; cout << (*it) << endl; //Lorsqu'il n'existe pas3Lorsque //Pointe3La valeur suivante plus grande it = mp.lower_bound(3); cout << "Clé3La borne inférieure est "; cout << (*it) << endl; // Lorsque l'on dépasse6 it = mp.lower_bound(6); cout << "Clé6La borne inférieure est "; cout << (*it); return 0; }
Sortie :
L'élément est: 1 2 4 5 Clé2La borne inférieure est 2 Clé3La borne inférieure est 4 Clé6La borne inférieure est 4
Dans l'exemple ci-dessus, lorsque nous essayons de trouver une valeur inférieure à la valeur inférieure de la conteneur, ou disons que le conteneur set ne contient pas cette valeur inférieure, il retourne à end.