gpt4 book ai didi

c++ - 按值删除 vector 中的元素

转载 作者:行者123 更新时间:2023-11-28 02:16:55 32 4
gpt4 key购买 nike

如何从 Flight 中检索对象以与 main 中的输入 (flightNumber) 进行比较?如何在 main 中声明属性类型?

当我编译时,显示一条错误消息:invalid conversion of 'int' to '*Flight*'agent1.delete(flightNumber); .

class Flight
{
int FlightNumber
};

class TravelAgent
{
vector <Flight *> flightList;
};

void Agent::delete(Flight *obj)
{
vector<Flight*>::iterator ptr;
for(ptr=flightList.begin();ptr!=flightList.end();ptr++)
{
if((*Ptr)==obj)
{
flightList.erase(ptr);
break;
}
}
if ((ptr) == flightList.end())
{
cout<<"Flight not found"<<endl;
}
}

int main
{
Agent agent1;
int flightNumber;
cout<<"Enter the number of the flight: "<<flush;
in>>flightNumber;
agent1.delete(flightNumber);
}

最佳答案

您可以在 Flight 类中添加(如果不存在) setter/getter

class Flight{
int FlightNumber;

public:

int getflightNumber(){ return flightNumber;}
};

然后按照以下步骤进行:-

void Agent::delete(int flightNumber)
{
vector<Flight*>::iterator ptr;
for(ptr=flightList.begin();ptr!=flightList.end();ptr++)
{
if(((*Ptr)->getflightNumber() == flightNumber)
{
flightList.erase(ptr);
break;
}
}
if ((fPtr) == listFlight.end())
{
cout<<"Flight not found"<<endl;
}
}

关于c++ - 按值删除 vector 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33776894/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com