C++中的tuple(元組)

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>類型的元組。

const char * a;
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()

}

還有很多其他的應用就不舉例子了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章