Как использовать вектор классов? Есть класс c методами sortByField и search, сортируют и ищут значения в векторе юзеров соответственно.class User
{
public:
void sortByField(vector& arr, int field);
void search(vector& arr, int field, string str);
...
private:
string fullName;
string birthDate;
...
Сам вектор объявляется в main файле. Что то мне кажется этот подход кривым, ведь метод класса работает с вектором, которого в самом классе нет, может вектор в сам класс перекинуть как поле?

21 Авг 2019 в 06:58
223 +1
0
Ответы
1

Да, можно переделать ваш класс User так, чтобы вектор был членом класса. Вы можете добавить поле вектора в класс и изменить методы sortByField и search так, чтобы они не принимали вектор как параметр. Вот пример кода:

class User
{
public:
void sortByField(int field);
void search(int field, string str);
private:
vector<User> users;
string fullName;
string birthDate;
...
};
void User::sortByField(int field)
{
// сортировка вектора по заданному полю
}
void User::search(int field, string str)
{
// поиск значения в векторе по заданному полю и строке
}
int main()
{
User user;
// заполнение вектора юзеров
user.sortByField(0); // сортировка по полю 0
user.search(1, "John"); // поиск по полю 1 и строке "John"
return 0;
}

Таким образом, вам не нужно будет передавать вектор как параметр каждый раз при вызове методов. Кроме того, работа с вектором будет более инкапсулированной внутри класса User.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир