У меня возникли проблемы с моим текущим проектом. У меня есть класс Джобс, который сохраняется внутри vector
. Когда я пытаюсь выполнить push_back
или pop_back
работа моя программа работает хорошо (я могу удалить только столько раз, сколько раз добавляю работу). Но когда я пытаюсь отобразить то, что находится внутри моего vector
, я получаю сообщение: ничего не отображать, vector
пуст, altought I push_back
некоторые работы.Нет значения в векторе при попытке отображения
void Job::generirateActivities(vector<Job> job_list) {
Smt s1("Default1", 1, 2, 3);
Smt s2("Default2", 2, 3, 4);
Date d1(1, 1, 2001);
Date d2(2, 2, 2002);
Job j1(&s1, &d1);
Job j2(&s2, &d2);
job_list.push_back(a1);
job_list.push_back(a2);
}
И для печати я использую:
void Job::printJobs(vector<Job> job_list) {
if (job_list.empty())
cout << "Nothing to display, vector is empty." << endl;
else {
for (unsigned int i = 0; i < job_list.size(); i++)
cout << i + 1 << ". " <<job_list[i].toString() << endl;
}
Что может быть не так? Какие-либо предложения?
Спасибо.
'generirateActivities (vector job_list) {' - you * copy * исходный вектор, а затем прилагается к копии, а не оригинал. Используйте ссылку: 'vector & job_list'. То же самое для печати (хотя сделайте это 'const'). –
BoBTFish
Ну, если я добавлю и мой project.exe перестали работать ... – HC1122
@BoBTFish Почему бы не написать ответ? – CinCout