我说的元素,成员等用词可能不太标准,理解什么意思就好
pair众所周知,二元组
用first和second来访问两个元素
用make_pair()来构造
但如果需要为一个对象存储更多的元素呢?
我们会选择结构体
但是c++11还提供了另外一种STL叫tuple
它与pair相比,不局限于存储两个可访问元素
而是很多个,比如
tuple<short, int, long long, float, double, char> tu;
#include <bits/stdc++.h>
using namespace std;
tuple<int, int, int> t; //定义一个tuple
template<class T> int test(T t) {
return tuple_size<T>::value;
}
//这个函数用来询问这个tuple的大小,就是其中有几个成员,比如上面的t就有三个
//除了写一个模板类函数我实在找不到别的办法调用这个tuple_size
int main(int argc, char const *argv[]) {
t = make_tuple(1, 2, 3); //给一个tuple赋初始值
cout << get<0>(t) << endl; //访问第几个成员<>中就写几,注意从0开始
cout << test(t) << endl; //输出tuple的size
}