我有一个这样的结构
struct AUTO{
int weight;
string name;
}
Run Code Online (Sandbox Code Playgroud)
我有一个函数通过传递返回一个结构name
AUTO autoByName(String name, AUTO a[], int ll)
{
for(int i = 0; i < ll; i++)
{
if (name == a[i].name)
{
return a[i];
}
}
// AND HERE ?????
}
Run Code Online (Sandbox Code Playgroud)
但我不知道函数末尾返回什么。有nullfor 结构吗?
你有很多选择:
AUTO一种表示“无值”的方法。例如,将权重设置为-1。或者添加一个标志。这实在是太难看了;我不推荐它,尽管它在实践中有些常见。nullptr在错误/无值的情况下返回 a 。这也很丑陋,因为它强迫你处理指针,原因不是很好。bool &wasFound向函数添加参数。boost::optional或std::pair<AUTO, bool>完成几乎相同的事情,但所有内容都包含在返回值中。这可能是最干净的。std::map::find例如,这就是工作原理。我推荐#4,或者在极少数情况下推荐#5。
| 归档时间: |
|
| 查看次数: |
10481 次 |
| 最近记录: |