У меня есть небольшая проблема с использованием векторов. У меня есть вектор, в котором хранятся персональные объекты, созданные классом Staff.Доступ к функциям-членам от вектора
vector <Staff> staffList;
vector <Staff>::iterator sit;
Я добавил несколько предметов персонала в этот вектор. Мой класс персонал имеет такие методы, как:
Staff getStaffAccount(string);
int getAccessLevel();
string getUserName();
int getStaffID();
string getPassword();
void setStaffIDNumber(int const);
void setUsername(string);
void setPassword(string);
void setAccessLevel(int);
static void changePassword(Staff*);
Когда мне нужно изменить объект персонала, что я делаю, чтобы получить объект персонала и изменить его. Это, как я получаю объект персонала:
Staff* Staff::searchByID(int staffID){
const int vectorSize = staffList.size();
for (int i=0; i<vectorSize; ++i){
if (staffList[i].getStaffID() == staffID){
return &staffList[i];
break;
}
}
return NULL;
}
Теперь после того, как я изменение объекта я понятия не имею, как сохранить измененный объект в вектор. Например, я могу установитьPassword() для объекта staff, пароль будет изменен так долго , что объект находится в памяти. Но как только он будет уничтожен и снова загружен с вектора, пароль был сброшен до предыдущего значения, которое было в векторе.
- Могу ли я модифицировать штатный объект, пока он находится в векторе?
- Если да, то как я могу искать объекты персонала в векторе? (Для поиска я наткнулся на вектор :: найти метод, но я не знаю, как использовать его на объектах.
Поскольку вы используете указатель, вы уже изменяя исходный объект, расположенный в списке – Gasim
Вы должны опубликовать сообщение SSCCE (см. Sscce.org), показывающее, как сбой изменений. – juanchopanza