C++ For Loop returns 多次匹配值
C++ For Loop returns matched values multiple times
我正在尝试将用户输入的字符串与我的向量中的某些元素进行匹配,然后如果它们匹配,则将所有信息添加到一个新的匹配向量中,然后可以将其输出给用户。但是我的程序似乎找到了 match/matches 然后多次存储它们(所以我的匹配向量被相同的数据填充了 4/5 次)。
这是我的匹配代码:
cout << "Please enter your airport of Departure.\n e.g. EMA \n\n";
cin >> depCode;
cout << "\nPlease enter your destination.\n e.g. VIE \n\n";
cin >> destCode;
cout << "\nPlease enter your date of travel.\n e.g. 12/06/15 \n\n";
cin >> dateTravel;
for(int i=0; i<flights.size();++i){
for(int j=0; j<airports.size();++j){
if(flights[i].originAirport == depCode && flights[i].destinationAirport == destCode){
string oAirport = flights[i].originAirport; //airports[j].airportCode;
string dAirport = flights[i].destinationAirport; //airports[k].airportCode;
string Airline = flights[i].Airline;
int Price = flights[i].airlinePrice;
int departureTax = airports[j].departureTax;
int Duration = flights[i].Duration;
matched.push_back(matchedFlights(oAirport,dAirport,Airline,Price,departureTax,Duration));
}
}
}
任何帮助将不胜感激,因为我现在很困惑。我是初学者所以如果这是一个非常明显的错误,我很抱歉。
即使 if 语句仅使用航班向量中的值,您的 if 语句也会以相同的条件开始执行您的 airports 向量中的每个元素,从而创建重复项。您可能需要重新考虑您的逻辑,并且 if/how 您应该使用内部循环。
我正在尝试将用户输入的字符串与我的向量中的某些元素进行匹配,然后如果它们匹配,则将所有信息添加到一个新的匹配向量中,然后可以将其输出给用户。但是我的程序似乎找到了 match/matches 然后多次存储它们(所以我的匹配向量被相同的数据填充了 4/5 次)。
这是我的匹配代码:
cout << "Please enter your airport of Departure.\n e.g. EMA \n\n";
cin >> depCode;
cout << "\nPlease enter your destination.\n e.g. VIE \n\n";
cin >> destCode;
cout << "\nPlease enter your date of travel.\n e.g. 12/06/15 \n\n";
cin >> dateTravel;
for(int i=0; i<flights.size();++i){
for(int j=0; j<airports.size();++j){
if(flights[i].originAirport == depCode && flights[i].destinationAirport == destCode){
string oAirport = flights[i].originAirport; //airports[j].airportCode;
string dAirport = flights[i].destinationAirport; //airports[k].airportCode;
string Airline = flights[i].Airline;
int Price = flights[i].airlinePrice;
int departureTax = airports[j].departureTax;
int Duration = flights[i].Duration;
matched.push_back(matchedFlights(oAirport,dAirport,Airline,Price,departureTax,Duration));
}
}
}
任何帮助将不胜感激,因为我现在很困惑。我是初学者所以如果这是一个非常明显的错误,我很抱歉。
即使 if 语句仅使用航班向量中的值,您的 if 语句也会以相同的条件开始执行您的 airports 向量中的每个元素,从而创建重复项。您可能需要重新考虑您的逻辑,并且 if/how 您应该使用内部循环。