tuple types:一个简单motivating例子
假如你想用一个函数返回多于一个返回值,例如:
// yields a quotient only//int integerdivide( int n, int d ) { return n / d;} // sample use:cout << "quotient = " << integerdivide( 5, 4 ); 在这个实现中有什么错误吗? 也许没有,毕竟在编译器中,我们内嵌了整数除法。包括结果也能够四舍五入。
但是,如果我们想做更多。特别,想提供一个方法得到除法其他的信息,例如除法的余数。如果没有改变函数的结构。那么,实现这样的要求的函数不是一件容易的事情。
一种办法我们在函数中加入一个输出变量。
// example 1(b): integer division,// yielding a quotient and remainder,// one as the return value and one via// an output parameter//int integerdivide( int n, int d, int& r ) {
r = n % d; return n / d;}// sample use:int remainder;int quotient = integerdivide( 5, 4, remainder );cout << "quotient = " << quotient<< "remainder = " << remainder;