The C + + Standard Library algoritm bibliotek innehåller implementationer av många vanliga programmeringsalgoritmer . Dessa implementeringar erbjuder ett utbud av flexibilitet , vilket gör att programmeraren att ange jämförelse funktioner för jämförelse - baserade algoritmer som kan arbeta med någon datastruktur tänkbara . Lägga till en jämförelsefunktion till en binär sökning med funktionspekare tillåter programmeraren att dra fördel av denna flexibilitet , och ser till att alla objekt som skapats av programmeraren kan sökas med standarden biblioteket. Saker du behöver
Text Redaktör Compiler
Visa fler instruktioner
1
sortera listan över objekt som ska sökas . En binär sökning beror på en sorterad lista är närvarande . Använd standard bibliotekets sorteringsfunktion för att förenkla denna process när man använder vanliga bibliotek containrar :
std :: sort ( myList.begin ( ) ; myList.end ( ) ) ;
2
Skapa din jämförelse funktion för binär sökalgoritm . Jämförelsen Funktionen ska returnera true om det första argumentet är mindre än den andra . Skräddarsy denna funktion för att acceptera argument ditt angivna klassen , och se till att klassen i fråga implementerar mindre än ( " < " ) operatör :
bool MyComparison ( MyType i, MyType j ) katalog
{
retur ( i < j ) ,
}
3
Supply din jämförelse funktion som ett argument till standarden bibliotekets binära sökfunktion :
binary_search ( myList.begin ( ) , myList.end ( ) , MyComparison ) ;
Denna funktion kommer nu använda din jämförelse funktion för att utföra binär sökning
. Addera