Есть такой класс администратора
class Admin
{
public:
Admin() {}
Admin(string log, string pass): login(log), password(pass) {}
~Admin() {}
string get_login() { return login; }
string get_password() { return password; }
static int a_Login(string Login, string Password);
static void a_Menu();
static void a_print();
static void a_delete();
static void a_add();
static void a_edit();
static void a_sort(int ascend=1);
static void load_data();
static void read_admins();
static void write_admins();
static string current_admin;
protected:
static int ascend_comp_login(const void* a, const void* b);
static int descend_comp_login(const void* a, const void* b);
string login, password;
};
И такие компараторы и сам метод, который вызывает qsort
int Admin::ascend_comp_login(const void* a,const void* b)
{
string l = ((Admin*)a)->get_login();
string r = ((Admin*)b)->get_login();
return l.compare(r);
}
int Admin::descend_comp_login(const void* a, const void* b)
{
string l = ((Admin*)a)->get_login();
string r = ((Admin*)b)->get_login();
return r.compare(l);
}
void Admin::a_sort(int ascend)
{
if (ascend) qsort(&admins, admins.size(), sizeof(Admin), ascend_comp_login);
else qsort(&admins, admins.size(), sizeof(Admin), descend_comp_login);
Admin::a_print();
}
admins это вектор типа vector<Admin>
После таких преобразований сначала в войд, а потом обратно в админ, видимо, теряется инфа т.к. геттер возвращает либо рандомный мусор, либо пустую строку
Как это исправить, что бы по итогу использовать qsort
?
вы передаете в функцию указатель на сам вектор, а не на данные вектора. Используйте vector::data
qsort(admins.data(), ...);
также рассмотрите вариант использования алгоритмов сортировки из <algorithm>
на итераторах, std::sort
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
найти значения длины гипотенузы в прямоугольном треугольнике с целыми сторонами, если 1 из катетов (H) Н-простое числоH=(2<=H<=10^4)
Решил попробовать создать двоичный тип данных для вводимых чисел, а также функции конъюнктирования и дизъюнктирования к нимОднако в какой-то...