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 您应该使用内部循环。