Как мне отсортировать людей в моем PersonArray? - PullRequest
0 голосов
/ 30 октября 2019

[решено]

У меня есть файл с несколькими людьми в нем, как реестр людей. Мне удалось напечатать их в случайном порядке, используя random_shuffle(), но у меня возникли проблемы с печатью отсортированных.

Я хочу использовать функцию sort() для c++11, но не могукажется, понял это правильно. то есть происходит сбой с несколькими ошибками xutility и алгоритма.

Я пытался использовать операционную функцию в классе Person. От person.cpp :

bool Person::Operator(const Person& that)
{
    return this->name < that.name;
}

Для сравнения имен. Но он тоже не хотел работать.

Что у меня сейчас есть: PersonReg.cpp:

PersonReg::PersonReg(const int _maxSize)
{
   this->maxSize = _maxSize;
   personArray = new Person[_maxSize];
}

void PersonReg::AddPerson(Person *person)
{
   this->personArray[indexInt++] = *person;
}

Person* PersonReg::begin()
{
   return personArray;
}

Person* PersonReg::end()
{
   return personArray + indexInt;
}

void PersonReg::SortPerson(Person *person)
{
   std::random_shuffle(begin(), end());
   PrintPersons();
   int n = sizeof(personArray) / sizeof(personArray[0]);
   std::sort(personArray, personArray + n);
   for (int i = 0; i < n; i++)
   {
    std::cout << i << std::endl;
   }
}

И в моем main.cpp :

void SortTest(Person *person, PersonReg &personReg)
{
   ReadReg(personReg, "PersonExempel.txt");
   personReg.SortPerson(person);
   personReg.DeletePerson(person);
}

Функция ReadReg просто читает в txt.file и добавляет Person в PersonReg. Это работает нормально, по крайней мере!

Я получаю МНОЖЕСТВО таких ошибок:

Код серьезности Описание Проект Состояние файла Подавление строки Ошибка C2672 'operator __surrogate_func': не найдено соответствующей перегруженной функцииLabb3_c ++ c: \ program files (x86) \ microsoft visual studio \ 2017 \ community \ vc \ tools \ msvc \ 14.16.27023 \ include \ xutility 1108

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...