我编写了以下代码来检查 vector 的元素,以查看它们是否相等。但是,由于某些原因是错误的,我无法确定原因。我确实认为“控制可能会达到非void功能的尽头”。这没有任何意义,因为我看不到会发生的地方。
任何帮助将不胜感激。
同样,这是在xCode中实现的,更具体地说,该程序是用C++编写的。
bool equalElements(vector<string> fileExtensionsArray){
for (int i=0; i<fileExtensionsArray.size(); i++){
int j=i+1;
if(fileExtensionsArray.at(i) == fileExtensionsArray.at(j)){
return false;
}
else{
return true;
}
}
}
最佳答案
案例:fileExtensionsArray
为空。
如果您的fileExtensionsArray
是一个空的std::vector
,fileExtensionsArray.size()
将等于0
。
因此,for
循环将永远不会执行,因此不会执行return
语句。
要解决此问题,您只需在函数定义的末尾添加return false
。
bool equalElements(vector<string> fileExtensionsArray){
for (int i=0; i<fileExtensionsArray.size(); i++){
int j=i+1;
if(fileExtensionsArray.at(i) == fileExtensionsArray.at(j)){
return false;
}
else{
return true;
}
}
return false; //Empty vectors are equal? Maybe not.
}