std::upper_bound e std::lower_bound para vetor em C++ STL
Clique aqui para o Conjunto 1 e o Conjunto 2 de vetores.
Vector - upper_bound e lower_bound
Iterator lower_bound (Iterator primeiro, Iterator último, const val)
Iterator upper_bound (Iterator primeiro, Iterator último, const val)
lower_bound retorna um iterador apontando para o primeiro elemento no intervalo [primeiro, último) que tem um valor não inferior a 'val '.
upper_bound retorna um iterador apontando para o primeiro elemento no intervalo [primeiro, último) que possui um valor maior que 'val'.
// lower_bound and upper_bound in vector
#include <algorithm> // for lower_bound, upper_bound and sort
#include <iostream>
#include <vector> // for vector
using namespace std;
int main()
{
int gfg[] = { 5, 6, 7, 7, 6, 5, 5, 6 };
vector<int> v(gfg, gfg + 8); // 5 6 7 7 6 5 5 6
sort(v.begin(), v.end()); // 5 5 5 6 6 6 7 7
vector<int>::iterator lower, upper;
lower = lower_bound(v.begin(), v.end(), 6);
upper = upper_bound(v.begin(), v.end(), 6);
cout << "lower_bound for 6 at position "
<< (lower - v.begin() + 1) << '\n';
cout << "upper_bound for 6 at position "
<< (upper - v.begin() + 1) << '\n';
return 0;
}
Saída :
lower_bound for 6 at position 4 upper_bound for 6 at position 7
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima
Quer aprender com os melhores vídeos com curadoria e problemas práticos, confira o C++ Foundation Course for Basic to Advanced C++ e C++ STL Course for Foundation plus STL. Para completar sua preparação desde o aprendizado de um idioma até o DS Algo e muitos mais, consulte o Curso Completo de Preparação para Entrevistas .
Aprendendo inglês e usando o Anki? Use o Faluchu e esqueça os cartões. É gratis!
Usar o Faluchu