Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Veranschaulicht, wie die Prädikatversion der Funktion lower_bound Standardvorlagenbibliothek (STL) in Visual C++ verwendet.
template<class ForwardIterator, class T, class Compare>
inline ForwardIterator lower_bound(
ForwardIterator First,
ForwardIterator Last,
const T& Value,
Compare Compare
)
Hinweise
Hinweis |
|---|
Die Klasse/Parameternamen im Prototyp stimmen nicht mit der Version in der Headerdatei ab.Einige wurden geändert, um die Lesbarkeit zu verbessern. |
Der lower_bound Algorithmus gibt den ersten Position in der Sequenz zurück, der Wert eingefügt werden kann, dass die Reihenfolge der Reihenfolge beibehalten wird.lower_bound gibt einen Iterator zurück, der an der Stelle positioniert ist, dass der Wert in den Bereich.First[eingefügt werden kann.Last) oder gibt Last zurück, wenn keine solche Position vorhanden ist.Diese Version nimmt den Bereich [First.Last) wird nacheinander mithilfe von Compare-Funktion sortiert.
Beispiel
// lower_boundPV.cpp
// compile with: /EHsc
// Illustrates how to use the lower_bound function.
//
// Functions:
// lower_bound : Return the lower bound within a range.
// disable warning C4786: symbol greater than 255 character,
// okay to ignore this warning
#pragma warning(disable: 4786)
#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;
int main()
{
const int VECTOR_SIZE = 8 ;
// Define a template class vector of int
typedef vector<int > IntVector ;
//Define an iterator for template class vector of strings
typedef IntVector::iterator IntVectorIt ;
IntVector Numbers(VECTOR_SIZE) ;
IntVectorIt start, end, it, location ;
// Initialize vector Numbers
Numbers[0] = 4 ;
Numbers[1] = 10;
Numbers[2] = 70 ;
Numbers[3] = 10 ;
Numbers[4] = 30 ;
Numbers[5] = 69 ;
Numbers[6] = 96 ;
Numbers[7] = 100;
start = Numbers.begin() ; // location of first
// element of Numbers
end = Numbers.end() ; // one past the location
// last element of Numbers
//sort Numbers using the function object less<int>()
//lower_bound assumes that Numbers is sorted
//using the "compare" (less<int>() in this case)
//function
sort(start, end, less<int>()) ;
// print content of Numbers
cout << "Numbers { " ;
for(it = start; it != end; it++)
cout << *it << " " ;
cout << " }\n" << endl ;
// return the first location at which 10 can be inserted
// in Numbers
location = lower_bound(start, end, 10, less<int>()) ;
cout << "First location element 10 can be inserted in Numbers is: "
<< location - start << endl ;
}
Output
Numbers { 4 10 10 30 69 70 96 100 }
First location element 10 can be inserted in Numbers is: 1
Anforderungen
Header: <algorithm>
Hinweis