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