Здравствуйте, Stals, Вы писали:
S> sort(book,bookLen,sizeof(struct Entry),phoneSort);
Судя по имени — std::sort, судя по использованию — std::qsort (скорее, второе). Приведу примеры к обоим:
// Для qsort:
int phoneSort ( void const* left, void const* right ) {
Entry const* leftEntry = static_cast<Entry const*> ( left ); // static_cast - более безопасный, нежели C-style cast ( struct Entry* )
Entry const* rightEntry = static_cast<Entry const*> ( right );
// -1, если меньше, 0, если равно и 1, если больше:
if ( leftEntry->number < rightEntry->number ) {
return -1;
}
else if ( leftEntry->number == rightEntry->number ) {
return 0;
}
else {
return 1;
}
}
// Для std::sort:
struct SortByPhone {
bool operator() ( Entry const& left, Entry const& right ) const {
return left.number < right.number;
}
};
#include <cstdlib> // для qsort
#include <algorithm> // для std::sort
// ...
std::vector<Entry> book;
int main () {
// C-style:
std::qsort ( &book[ 0 ], book.size (), sizeof ( Entry ), &phoneSort );
// C++-style (рекомендую его):
std::sort ( book.begin (), book.end (), SortByPhone () );
}