Я создал связанный список смежности, чтобы показать рейсы между городами. Программа читает из 2-х файлов, один из которых содержит названия городов, а другой содержит пункты отправления и назначения разных рейсов. Я создал массив для обслуживаемых городов и связанный список соединяющихся городов для каждого индекса города в массиве. Однако у меня возникли проблемы с распечаткой списка. Мой выход выглядит так:
Origin -- Dest --- Flight No. -- Price
NYC --- Chicago -- 3123 ---- 123
NYC ---- Miami ---- 2123 ---- 543
NYC ---- Seattle --- 9283 ---- 243
Я хочу знать, могу ли я распечатать город происхождения только один раз.
Вот мой код для структуры и прочего:
struct flight
{
int fNumber;
string source;
string dest;
int price;
}
оператор перегрузки для вывода p.source
— это источник, p.dest
— пункт назначения и т. д.
ostream& operator<<(ostream & os, const flight & p)
{
os <<"From "<< p.source << " to: ";
int diff=0;
diff= 35- p.source.length();
os << fixed<< setw(diff)<<right<< p.dest;
os << setw(10)<<right<<p.fNumber;
os << setw(10)<<right<<p.price;
return os;
}
и функция отображения
void flightMap::display()
{
cout<<setw(15)<<"Origin "<<setw(30)<<"Destination"<<setw(12)<<"Flight "<<setw(13) <<"Price "<<endl;
cout<<"================================================================="<<endl;
for (int i=0; i<number; i++)
{
flightRecord[i].display();
}
}
Я хочу, чтобы мой вывод выглядел так
Origin Dest Flight No. Price
NYC Chicago 3123 123
---- Miami 2123 543
---- Seattle 9283 243