如果它可能失败,那么空向量并不是一个糟糕的主意。人们似乎喜欢返回错误代码的一种技巧是将向量作为参考参数,并将函数的返回值更改为布尔值,如果有更多类型的返回代码(可以是枚举类型,也)。根据返回的值,您的向量可能存在不同的条件。我认为在这种情况下,尽管空向量很好,只要它记录得当。
参考参数示例,布尔返回方法
//pre: none
//post: if month and year are valid, monthArray will contain array
// of months and function returns true.
// Otherwise returns false with no guarantees on contents of monthArray
bool getMonthArray(int month, int year, vector<Date>& monthArray);
错误代码示例,参考参数
//pre: none
//post: if month and year are valid, monthArray will contain array
// of months and function returns 0 for success.
// If month is valid but year is not, returns -1
// If month is invalid, but year is not, returns -2
// If month and year are valid, but otherwise failed, returns -3
int getMonthArray(int month, int year, vector<Date>& monthArray);