http://www.cplusplus.com/reference/cstdlib/qsort/
czyli masz funkcję sortująca, a za pomocą wskaźnika możesz zdefiniować relację między sortowanymi elementami.
Sam algorytm sortowania wygląda tak samo, ale relacje między elementami można dostosować do potrzeb.
Algorytmy z STL zamiast wskaźników na funkcje ma "funkcjonały" "funktory", czyli obiekty które zachowują się jak funkcje.
Wskaźniki na funkcję są przydatne w C.
We współczesnym C++ unika się ich jak ognia, bo są inne bardziej uniwersalne i wygodne rozwiązania:
- interfejsy - klasy abstrakcyjne i wskaźniki na nie
- obiekty funkcyjne i ich udogodniona forma:
*- lambdy
*- std::function
- szablony
Każdy język programowania ma coś analogicznego.
W Java są interfejsy i lambdy
W C# to samo co w Java plus delegaty
W Python JavaScript itp też jest taki mechanizm ale jest ukryty pod pojęciem "Duck typing" (kacze typowanie - jeśli coś wygląda jak kaczka, kwacze jak kaczka, to musi być kaczka).
Tu jest omówione, po co to jest, na bardzo wysokim poziomie abstrakcji, więc pewnie nie zrozumiesz.