我编写了以下代码来检查 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::vectorfileExtensionsArray.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.
}

10-04 15:03