void compare(vector<Customer>&compare,vector<CarProperties>&cars,int customer_number)
{
int c = customer_number;
for(int i =0; i<=cars.size(); i++)
{
if(cars[i].getname() == compare[c].getCustomerDesiredCar())
break;
cout << "Enter car is available for rent"<<endl;
}
}
这里我比较2个向量,汽车向量包含汽车并比较向量比较用户输入的汽车名称乘汽车向量。每当我尝试运行它时,我的编译器在此函数崩溃,否则程序运行正常。
答案 0 :(得分:1)
您收到错误是因为您正在访问向量的最后一个元素。我建议另类:
bool isCarAvailable( const std::string& desiredCar, const vector<CarProperties>& cars) {
for(int i =0; i<cars.size(); i++) {
if(cars[0].getname() == desiredCar) {
return true;
}
}
return false;
}
你可以运行这样的功能:
if (isCarAvailable(compare[c].getCustomerDesiredCar(), cars))
{
cout <<"Available"<<endl
}
答案 1 :(得分:0)
我猜你可能想要像这样重写你的功能:
void compare(Customer const& customer, vector<CarProperties> const& cars)
{
for(unsigned i = 0; i< cars.size(); i++)
{
if(cars[i].getname() == customer.getCustomerDesiredCar()) {
cout<<"Enter car is available for rent"<<endl;
break;
}
}
}