gpt4 book ai didi

c++ - 函数退出未遇到返回如何正确处理

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:00 24 4
gpt4 key购买 nike

我有一个函数可以搜索 vector 并在找到时返回项目。但我想知道如果找不到最好的软件处理方法。

我创建了一个函数,它可以返回 -1 或其他东西,但它与返回类型不匹配。

koalaGraph::PVertex Koala::lookUpVertexbyName(const std::string&vertexName, const std::vector<koalaGraph::PVertex>& koalaVertices) {

for (size_t i = 0; i < koalaVertices.size(); i++) {

if(koalaVertices[i]->info.name == vertexName)
return koalaVertices[i];
}
}

如果遇到正在搜索的项目不在 vector 中的情况,则程序将退出。

最佳答案

您可以使用 std::optional

#include <optional>
std::optional<koalaGraph::PVertex>
Koala::lookUpVertexbyName(const std::string&vertexName,
const std::vector<koalaGraph::PVertex>& koalaVertices) {

for (size_t i = 0; i < koalaVertices.size(); i++) {

if(koalaVertices[i]->info.name == vertexName)
return koalaVertices[i];
}
return {};
}

int main()
{
Koala k;
//...
auto maybeVertex = k.lookUpVertexByName("foo",vertices);
if(maybeVertex)
koalaGraph::PVertex&& vertex = *maybeVertex;
//alternatively
if(maybeVertex.has_value())
//found
}

关于c++ - 函数退出未遇到返回如何正确处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55609830/

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