Sha*_*ger 16
std::pair包括返回两个值,std::tuple推广到任意数量的值.并用std::tuple的std::tie效用函数,调用者可以接受的结果到单独的变量太多,避免了需要通过一个提取它们之一,例如:
std::tuple<int, int> returns_two()
{
return std::make_tuple(1, -1);
}
int main() {
int a, b;
std::tie(a, b) = returns_two();
// a and b are now 1 and -1, no need to work with std::tuple accessors
std::cout << "A" << a << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
当然,在这种情况下,您实际上不需要滚动自己的代码来返回输入的最小值和最大值,因为有一个模板化的实用程序函数已经执行此操作std::minmax(对于两个离散的参数和初始化列表)和std::minmax_element(对于由迭代器定义的范围)(它们都返回std::pair,并且std::pair与std::tuple两个元素完全兼容).