Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bekabot
1 / 1 / 0
Регистрация: 18.12.2013
Сообщений: 61
#1

Как можно записывать в вектор типа классса? - C++

09.02.2014, 11:29. Просмотров 204. Ответов 3
Метки нет (Все метки)

к примеру есть класс Homeworlist, в котором есть вектор list.
C++
1
vector<Homework> list;
теперь мне нужно записывать в вектор информацию, каждый раз, когда вызывается следующая функция:
C++
1
2
3
4
5
6
7
8
9
void Homeworklist::Add(Homework h)
{
 
    if (a>=50) cout << "No";
    cin >> list[0].HomeworkName >> list[0].Assigned_Date_1 >> list[0].GetDue_Date_1;
    list.push_back(h);
    a++;
    
}
Операторы я уверен, что описал правильно, программа компилируется, но когда вызываю функцию, выходит надпись "Vector subscript out of range". Как можно исправить? Также по заданию нельзя добавлять в вектор если его его размер превышает 50. Помогите пожалуйста. Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 11:29     Как можно записывать в вектор типа классса?
Посмотрите здесь:

C++ как вызвать метод из указателя на вектор пользовательского типа
Сведения о машине можно считывать/записывать в файл C++
Можно ли заставить класс записывать самого себя в файл? C++
Как можно сгруппировать по 8 элементов вектора, чтобы записывать в файл? C++
C++ Как разбить вектор на части(то есть вектора того же типа)
C++ Можно ли записывать объекты класса string в память, чтоб потом их прочитать?
Как правильно записывать в динамический массив типа класса обьекты? вот банальный пример C++
Как можно записывать в существующие файл, в котором уже есть информация? C++
Двумерный вектор: можно ли как-то перегрузить [] чтобы доступ был [0, 0] C++
C++ В чём ошибка? Контейнер, в который можно записывать сколько угодно чисел
C++ Сделать программу которая будет записывать разные значения в переменную типа integer
Можно ли записывать данные в блок ресурсов(при исполнении программы) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2452 / 1624 / 238
Регистрация: 24.11.2012
Сообщений: 3,999
09.02.2014, 11:34     Как можно записывать в вектор типа классса? #2
Обращение к нулевому элементу вектора, который, скорее всего, пуст.
И затем push_back непонятно чего.
Читайте в переменную, ее добавляйте в вектор.
zss
Модератор
Эксперт С++
6184 / 5787 / 1874
Регистрация: 18.12.2011
Сообщений: 14,782
Завершенные тесты: 1
09.02.2014, 11:39     Как можно записывать в вектор типа классса? #3
А часом не это имелось ввиду:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void Homeworklist::Add(Homework h)
{
 
    if (a>=50) cout << "No";
    else
    {
       cin >>h.HomeworkName >>h.Assigned_Date_1 >>h.GetDue_Date_1;
       list.push_back(h);
       a++;
    }
    
}
Добавлено через 2 минуты
Но в этом случае параметр функции передавать незачем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void Homeworklist::Add()
{
 
    if (a>=50) cout << "No";
    else
    {
       Homework h;
       cin >>h.HomeworkName >>h.Assigned_Date_1 >>h.GetDue_Date_1;
       list.push_back(h);
       a++;
    }
    
}
bekabot
1 / 1 / 0
Регистрация: 18.12.2013
Сообщений: 61
09.02.2014, 11:40  [ТС]     Как можно записывать в вектор типа классса? #4
Цитата Сообщение от zss Посмотреть сообщение
А часом не это имелось ввиду:
блин, тупая ошибка, а я ломал голову, спасибо большое!
Yandex
Объявления
09.02.2014, 11:40     Как можно записывать в вектор типа классса?
Ответ Создать тему
Опции темы

Текущее время: 04:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru