gpt4 book ai didi

c++ - 控件到达非空函数警告 C++ 的末尾

转载 作者:行者123 更新时间:2023-11-28 00:01:36 25 4
gpt4 key购买 nike

以下代码在行尾生成“控件到达非空函数的末尾”警告。可能出了什么问题?快速搜索,似乎与返回值有关。

std::vector<csce::point<T>> compute_hull(std::vector<csce::point<T>>& points) const {

for(std::size_t x=0; x<points.size(); x++){

for(std::size_t m=1; m<(1<<(1<<x)); m++){
std::vector<std::vector<csce::point<T>>> hulls;

for(std::size_t i=0; i<points.size(); i=i+m){
std::vector<csce::point<T>> chunk;

if(points.begin()+i+m <= points.end())
chunk.assign(points.begin()+i,points.begin()+i+m);

else
chunk.assign(points.begin()+i,points.end());
hulls.push_back(this->graham_scan(chunk));
}


std::vector<std::pair<int,int>> hull;

hull.push_back(this->extreme_hullpt_pair(hulls));

for(std::size_t i=0; i<m; ++i){
std::pair<int,int> p = this->next_hullpt_pair(hulls,hull[hull.size()-1]);

std::vector<csce::point<T>> output;

if(p==hull[0]){

for(std::size_t j=0; j<hull.size(); j++){
output.push_back(hulls[hull[j].first][hull[j].second]);
}

return output;
}

hull.push_back(p);


}
}
}
}

最佳答案

正确的格式对于正确解释编译器警告和错误消息很重要!

这个模式在你的函数定义的末尾

        }
}
}
}

是您的格式/缩进严重错误的明显标志。

然而,在最后一个大括号之前放置一个 return 语句应该可以修复错误

    // ...
return points; // <<<<
}

同样关于格式化,始终明确嵌套了哪些代码块(最好使用大括号)

            if(points.begin()+i+m <= points.end()) {
chunk.assign(points.begin()+i,points.begin()+i+m);
}
else {
chunk.assign(points.begin()+i,points.end());
}
hulls.push_back(this->graham_scan(chunk)); // Outside if / else

关于c++ - 控件到达非空函数警告 C++ 的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548714/

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