Мне по заданию надо реализовать:
Информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для каждого поезда указывается номер поезда, станция назначения, время отправления. Реализовать программу, которая обеспечивает первоначальный ввод данных в информационную систему, производит вывод всего списка, вводит номер поезда и выводит все данные об этом поезде, вводит название станции назначения и выводит данные обо всех поездах, следующих до этой станции. Обязательно с двумя классами Поезд и расписание. Но у меня возникла проблема при использовании STL библиотек. Во время поиска мне надо иметь доступ к полям поезда, но я не знаю как это реализовать
#include <string>
#include <list>
using namespace std;
class Train {
public:
int number;
string arrival_station;
float time;
//public:
Train();
Train(int numb, string arr, float tim);
};
class Timetable : public Train {
private:
Train train;
list<Train>* trains;
public:
Timetable();
void add(Train);
int find_number(number);
//int find_station();
};
Реализиции методов(написано криво и не совершенно:( )
#include "pch.h"
#include "Timetable.h"
#include <iostream>
using namespace std;
Train::Train(int numb, string arr, float tim) {
if (numb < 24.00) {
number = numb;
arrival_station = arr;
time = tim;
} else cout << "\nВремя введено некорректно";
}
Train::Train() {
}
Timetable::Timetable() {
}
void Timetable::add(Train) {
trains.push_back(train);
}
int Timetable::find_number(number) {
list<Train>::const_iterator pos;
pos = find(trains.begin(), trains.end(), number)
cout << pos->number;
}
Понимаете, у вас наверчено такое, что разбирать все ошибки - проще написать с нуля... Поэтому я позволю себе формально ограничиться только вашим вопросом -
Во время поиска мне надо иметь доступ к полям поезда, но я не знаю как это реализовать
Вам нужен не find()
, а find_if()
, и использовать его нужно примерно так:
int Timetable::find_number(int num) {
list<Train>::const_iterator pos;
pos = find_if(trains->begin(),trains->end(),[num](const Train&t){ return t.number == num; });
if (pos == trains->end())
{
Не найден
} else {
Найден
}
return Что вы там хотели вернуть?...
}
У вас нет ни проверки, что что-то найдено, а если найдено - то ваш pos->number
по сути равен аргументу функции (зачем искать было? :))
Но это все мелочи по сравнению с общей программой, которая представляет собой нечто странное...
Виртуальный выделенный сервер (VDS) становится отличным выбором
недавно смотрел видео по созданию веб-приложения с помощью Spring MVC и Freemarker и пытался понять что и к чемуНа 1:20:00 https://www
Я создал кастомного твич бота с использованием библиотеки cavariuxВызвал по очереди методы в main классе
Я как понял, если я хочу скомпилировать код, в котором используются различные сторонние библиотеки, то мне необходимо будет писать кучу доппараметров,...
Программа находит длинное слово в файле, подскажите как его можно удалить?