我试图让我的头脑围绕元组(感谢@litb),他们使用的常见建议是返回> 1值的函数。
这是我通常会使用 struct 的东西,在这种情况下我无法理解元组的优势 - 对于最终懒惰的人来说,这似乎是一种容易出错的方法。
借用一个例子,我会用这个
struct divide_result {
int quotient;
int remainder;
};
使用元组,您将拥有
typedef boost::tuple<int, int> divide_result;
但是,如果不阅读您正在调用的函数的代码(或注释,如果您愚蠢到相信它们),您将不知道哪个 int 是商,反之亦然。好像比较像...
struct divide_result {
int results[2]; // 0 is quotient, 1 is remainder, I think
};
...这不会让我充满信心。
那么,元组与弥补歧义的结构相比有什么优势?