Ben*_*Ben 1 c++ function vector
对不起,这真让我感到困惑,我知道答案是盯着我看,我无法弄清楚.有人可以看看吗?它用于航空公司预订系统学校项目.
此功能接收航班号,容量,航班数量以及包含所有航班作为参数的向量.它将检查以确保航班不存在,如果存在则将显示错误消息,否则将创建航班.航班数量也将增加.
void newFlight( string f, string s, int* n, vector<Flight> *v)
{
Flight temp;
//Check to see if flight number exists
bool alreadyExist = false;
for (int i=0; i < v->size(); i++)
{
if (f.compare((v[i].getNumber()) == 0))
alreadyExist = true;
}
//If it doesn't exist, create it
if (!alreadyExist)
{
v->push_back (temp); //Add the new Flight object to the
//vector of flights
*n++; //Increase count
}
else
{
cout << "A flight numbered " << f << " already exists";
cout << ". Flight not created.\n";
}
};
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我尝试比较航班号已经在向量中的航班与我想要添加的航班号.在第7行,我不断收到此消息:
错误:
‘class std::vector<Flight, std::allocator<Flight> >’没有名为'getNumber'的成员
有问题的向量是一个带有Flight类的向量,它有一个名为getNumber()的成员.我通过引用将向量传递给函数.所以v是指针,但我认为[]会照顾它.我也尝试使用 - >运算符而不是点运算符,但它没有帮助.我不知所措,任何帮助将不胜感激.我相对生锈,夏天刚刚完成:D我也希望这个格式正确.
参数v作为指向vector的指针传递给函数.如果你然后使用[]运算符,它就像在C中一样认为v是指向向量数组的指针,所以v [i]实际上仍然是一个向量.
你应该做的是:
(*v)[i].getNumber();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
569 次 |
| 最近记录: |