【发布时间】:2022-11-21 18:00:48
【问题描述】:
在这种情况下,find() 函数应该返回什么
class Student{
private:
string name;
int age;
public:
string get_name(){
return name;
}
int get_age(){
return age;
}
}
class list_of_student{
private:
vector <Student> list;
public:
vector<Student> get_list(){
return list;
}
Student find_by_name(string name){
for(int i = 0; i < list.size(); i++){
if(list.at(i).get_name == (name)){
return Student.at(i);
}
}
return ???
如果没有那个名字的学生,函数应该返回什么
【问题讨论】:
-
你可以使用
std::optional<Student> -
给定签名,唯一要做的就是抛出异常。或者你可以使用
std::optional。 IE。std::optional<Student> find_by_name(string name){ ... } -
您应该返回具有该名称的所有学生的列表,如果没有找到则该列表为空。
-
{"", 0}呢? (除非您允许还没有名字的新生儿。) -
@brah79 就是
return {};。你需要#include <optional>,见here
标签: c++ return-type