tuple是類似於結構體,功能跟C語言中的結構體一樣。在不需要創建結構體的前提下可以使用類似於結構體的功能
下面是touple的簡單使用
//使用元組需定義的頭文件
#include<tuple>
void main(){
//創建元組
std::tuple<int, char, double>tp(2, 'b', 1.9);auto data0 = std::get<0>(tp);//獲得裏面的元素
auto data1 = std::get<1>(tp);
auto data2 = std::get<2>(tp);
auto tup1 = std::make_tuple("hello", 'a', 1.3);
//上述代碼創建了一個tuple <const char*, char, double>類型的元組。
char b;
double c;
std::tie(a, b, c) = tup1;
std::cout << a << " " << b << " " << c << std::endl;
std::tie(std::ignore, b, c) = tup1;
//tie: 用於拆開tuple
//如果不想要某一位的值,可以直接將其用ignore代替。
int aa = 5;
int &bb = aa;
char *p = "hello";
char *&pp = p;
auto tup2 = std::forward_as_tuple(bb, pp);
auto data5 = std::get<0>(tup2);
std::cout <<"****"<< data5 << std::endl;
//forward_as_tuple: 用於接受右值引用數據生成tuple
//上述代碼創建了一個tuple<int &&, char (*&)>類型的元組。
//意思就是可以使用右值作爲參數,而前面討論的tie函數就只能接受左值
std::tuple<float, std::string> tup1(3.14, "pi");
std::tuple<int, char> tup2(10, 'a');
auto tup3 = tuple_cat(tup1, tup2);
//將tup1和tup2連起來就成了tup3
std::cin.get()
}
還有很多其他的應用就不舉例子了