我正在使用向量进行冒泡排序程序,我无法在BubbleSort中输入for循环,该循环应该在排序后显示我的结果。 我正在排序一个向量,我想通过Departure对它进行排序(它在另一个文件中声明)。
我期待一个按航班排序的列表,按出发时间排序,这是一个字符串。
这是我的代码:
Header:
class BubbleSort : public Sort
{
public:
// main entry point
void sort(std::vector<Flight>& data);
};
void BubbleSort::sort(std::vector<Flight>& data)
{
list<Flight>::iterator m = flights.begin();
int temp;
while (m != flights.end()) {
for (int i = 0; i <data.size(); ++i)
for(int j = 0; j < (data.size()-1); ++j)
if (data[j] > data[j+1]) {
Flight temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
for(int k = 0; k < data.size(); ++k) { //the problematic loop
cout << "Array after bubble sort: ";
cout << data[k].getDeparture() << endl;
}
m++;
}
}
main:
// global variables
vector<Flight> flightsVector; //vector containing all flights
list<Flight> flights; //list containing flights (objects of class Flight)
list<string> flightDepartures;
// function declarations
void loadFlights(ifstream& in);
void fillFlightsList(); //fills flights with flights objects (formed of destinations, departures, flight numbers and gate numbers)
void printFlightsList(); //prints the list of flights
void display_info();
void printFlightsList();
void main()
{
vector<Flight> data;
ifstream in("inputFileExample.txt");
if (!in)
{
cerr << "ERROR: wrong input file name!";
exit(-1);
}
// Sort* s;
loadFlights(in);
fillFlightsList();
printFlightsList();
cout << endl;
BubbleSort bubble;
bubble.sort(data);
cout << endl;
return;
}
答案 0 :(得分:1)
那是因为列表是空的。