tuple 主要作用是可以省去临时结构体的定义,看起来也比较清爽。
比如想获取年月日,常规做法是定义一个结构体:
struct tm
{
int tm_mday; // day of the month - [1, 31]
int tm_mon; // months since January - [0, 11]
int tm_year; // years since 1900
};
但是,使用 tuple 可以简化
std::tuple<int, int, int> get_day()
{
std::time_t t = std::time(0);
std::tm* now = std::localtime(&t);
return (std::tuple<int, int, int>(now->tm_year + 1900, now->tm_mon + 1, now->tm_mday) );
}
// 使用的时候,只要:
auto d = get_day()
// 获取值:
std::cout
<<std::get<0>(d)<<"-"
<<std::get<1>(d)<<"-"
<<std::get<2>(d)<<std::endl;