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

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

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

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

09.02.2014, 11:29. Просмотров 219. Ответов 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. Помогите пожалуйста. Спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 11:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как можно записывать в вектор типа классса? (C++):

Как правильно записывать в динамический массив типа класса обьекты? вот банальный пример - C++
#pragma once #include &quot;iostream&quot; namespace Program { class Book { typedef unsigned int ui; private:

Как можно сгруппировать по 8 элементов вектора, чтобы записывать в файл? - C++
Есть vector&lt;bool&gt; mas(300000); как можно сгруппировать по 8 элементов этого вектора, чтобы записывать в файл. Ведь в файл запись...

Как можно записывать в существующие файл, в котором уже есть информация? - C++
#include &lt;cstdlib&gt; #include &lt;cstdio&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; int View(int...

Как вызвать метод из указателя на вектор пользовательского типа? - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;string&gt; using namespace std; struct Client { vector &lt;string&gt; login; vector...

Запись информации из вектора типа string в вектор типа double - C++
Как записать только числа , которые хранятся в векторе типа стринг, в вектор типа дабл, в векторе типа стринг есть как буквы так и числа ,...

Как разбить вектор на части(то есть вектора того же типа) - C++
Как разбить вектор на части(то есть вектора того же типа), чтобы было по 8 элементов в каждом vector&lt;bool&gt; fg;//вот его надо...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
09.02.2014, 11:34 #2
Обращение к нулевому элементу вектора, который, скорее всего, пуст.
И затем push_back непонятно чего.
Читайте в переменную, ее добавляйте в вектор.
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 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++;
    }
    
}
0
bekabot
1 / 1 / 0
Регистрация: 18.12.2013
Сообщений: 61
09.02.2014, 11:40  [ТС] #4
Цитата Сообщение от zss Посмотреть сообщение
А часом не это имелось ввиду:
блин, тупая ошибка, а я ломал голову, спасибо большое!
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 11:40
Привет! Вот еще темы с ответами:

Сделать программу которая будет записывать разные значения в переменную типа integer - C++
Пользователь должен вводить различные параметры, например количество масок = 3, номер ошибки= 13 , номер маски = 117 и все они должны...

Как можно скопировать элементы массива в вектор? - C++
я знаю что есть методы insert и at, но вот в моей ситуации нужно скопировать вектор Vi только элементы первого столбца из massiv то...

Сведения о машине можно считывать/записывать в файл - C++
Помогите пожалуйста, программа выполняет два действия. Если 1 - в файл записывается марка машины, вес, номер (а000аа). Если 2 -...

Двумерный вектор: можно ли как-то перегрузить [] чтобы доступ был [0, 0] - C++
У меня есть двумерный вектор, можно как-то перегрузить чтобы доступ был ? А то сейчас сделал через прокси-класс , но все-таки хотелось бы...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.02.2014, 11:40
Ответ Создать тему
Опции темы

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