Наш учитель сказал нам создать вектор объектов и выполнить над ним операции, но я не мог понять, как правильно это сделать: я попытался создать простой проект с минимальными данными, чтобы я мог знать, что я делаю.Как добавить элементы в вектор объектов и распечатать их?
У меня есть этот класс
class Obj {
private:
int num;
public:
Obj();
void setNum(int nuovo_num);
int getNum();
};
А потом этот, с вектором Obj
class VettObj{
private:
vector<Obj> vett;
public:
VettObj();
void setVett();
void stampaVett();
};
Моя первая мысль была использовать итератор, но я был просто сделать полный беспорядок и, с почти бесполезными исследованиями, я решил использовать общий счетчик целых чисел.
Я обнаружил, что ничего не должен писать в калькуляторе затрат VettObj, поскольку он автоматически инициализирует материал, поэтому я оставил его пустым.
Метод, который добавляет элементы это
void VettObj::setVett(){
Obj temp;
int i;
i = 0;
while(i < 5){
temp.setNum(10);
vett.push_back(temp);
i++;
}
}
И один, который печатает элементы
void VettObj::stampaVett(){
int i;
i = 0;
while(i < 5){
vett[i].getNum();
i++;
}
}
Когда я компилирую, все идет хорошо, но когда я запускаю программу, которую я не получаю ничего на экран. Я не хочу использовать в основном векторные функции (если не нужно), поскольку я видел, что многие люди могут это делать так. Мне бы очень хотелось узнать, как это сделать с помощью итераторов. Помощь pls ????
Правильный инструмент для решения таких проблем - ваш отладчик. Перед тем, как просить о переполнении стека, вы должны пропустить свой код по очереди *. Для получения дополнительной информации, пожалуйста, прочтите [Как отлаживать небольшие программы (Эрик Липперт)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Как минимум, вы должны \ [изменить] ваш вопрос, чтобы включить пример [Минимальный, полный и проверенный] (http://stackoverflow.com/help/mcve), который воспроизводит вашу проблему, а также замечания, сделанные вами в отладчик. –
Задайте ** конкретный вопрос **. Детальная история происхождения вашей программы не имеет ничего общего с чем-либо. –
, вероятно, вы должны начать с «Hello World». Почему, по вашему мнению, в вашей программе все будет напечатано на экране? Он не волшебным образом читает ваш разум и делает то, что вы хотите. – user463035818