Nwlapcug.com


Come utilizzare i puntatori a funzione in un argomento di ricerca binaria in C++

Come utilizzare i puntatori a funzione in un argomento di ricerca binaria in C++


Libreria di algoritmo della libreria Standard C++ contiene implementazioni di molti algoritmi di programmazione comune. Queste implementazioni di offrire una gamma di flessibilità, permettendo al programmatore di specificare le funzioni di confronto per gli algoritmi basati sul confronto che possono lavorare con qualsiasi struttura di dati immaginabile. Aggiunta di una funzione di confronto per una ricerca binaria utilizzando i puntatori a funzione consente al programmatore di sfruttare questa flessibilità e garantisce che qualsiasi oggetto creato dal programmatore possa essere cercato con la libreria standard.

Istruzioni

1

Ordinare l'elenco di oggetti da cercare. Una ricerca binaria dipende da un elenco ordinato di essere presenti. Utilizzare la funzione di ordinamento della libreria standard per semplificare questo processo, l'utilizzo di contenitori di libreria standard:

STD::Sort(myList.Begin(); myList.end());

2

Creare la funzione di confronto per l'algoritmo di ricerca binaria. La funzione di confronto deve restituire true se il primo argomento è minore del secondo. Personalizzare questa funzione per accettare argomenti della classe specificata e assicurarsi che la classe in questione implementa il meno-rispetto ("<") operatore:

bool MyComparison (MyType i, j MyType)

{

return (i&lt;j);

}

3

Fornire la funzione di confronto come argomento alla funzione di ricerca binaria della libreria standard:

binary_search(myList.Begin(), myList.end(), MyComparison);

Questa funzione sarà ora utilizzare la funzione di confronto per eseguire la ricerca binaria.

Consigli & Avvertenze

  • Utilizzare i modelli di classe di fare una funzione di confronto generico. Questa funzione può quindi essere riutilizzata in più oggetti senza essere reimplementato. Inoltre, specializzazione del template può abilitare polimorfismo con tipi di ricerca, consentendo una maggiore flessibilità nella progettazione di dati del programma.
  • Gli oggetti che costituiscono il tuo elenco devono avere meno-operatore definito per questa implementazione alla funzione. Modificare la funzione di confronto per utilizzare altre funzionalità disponibili per gli oggetti se non è possibile implementare questo operatore.