我们在C++中都用过pair.pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同.pair可以使用make_pair构造
pair
p = make_pair(1, "a1");
如果传入的参数为多个,那么就需要嵌套pair,如下代码
#include
#include
上面的做法明显很麻烦,在C++11中引入了变长参数模板,所以发明了新的数据类型:tuple,tuple是一个N元组,可以传入1个, 2个甚至多个不同类型的数据,避免了嵌套pair的丑陋做法,通过make_tuple()创建元组,通过get<>()来访问元组的元素
#include
#include
#include
using namespace std; int main() { auto t1 = make_tuple(1, "a1", "b1", "c1"); cout << get<0>(t1) << " "; cout << get<1>(t1) << " "; cout << get<2>(t1) << " "; cout << get<3>(t1) << " "; cout << endl; vector
> tv; tv.push_back(make_tuple(1, "a1", "b1", "c1")); tv.push_back(make_tuple(2, "a2", "b2", "c2")); vector
>::iterator itr; for (itr=tv.begin(); itr!=tv.end(); itr++) { cout << get<0>(*itr) << " "; cout << get<1>(*itr) << " "; cout << get<2>(*itr) << " "; cout << get<3>(*itr) << endl; } return 0; }