Tuples en C++

Un tuple est un objet pouvant contenir un certain nombre d’éléments. Les éléments peuvent être de différents types de données. Les éléments des tuples sont initialisés comme arguments dans l'ordre dans lequel ils seront accédés.  Les tuples sont une structure de données polyvalente pour regrouper des valeurs. Pour comprendre comment utiliser les tuples en C++ et leurs applications, le Cours C++ fournit des didacticiels et des exemples complets.

Opérations sur Tuple

1. obtenir() : get() est utilisé pour accéder aux valeurs du tuple et les modifier. Il accepte l'index et le nom du tuple comme arguments pour accéder à un élément de tuple particulier. 

2. make_tuple() : make_tuple() est utilisé pour attribuer un tuple avec des valeurs. Les valeurs transmises doivent être en ordre avec les valeurs déclarées dans le tuple. 

CPP
   #include          #include         using     namespace     std  ;   int     main  ()     {          // Declaring tuple      tuple   <  char       int       float  >     geek  ;      // Assigning values to tuple using make_tuple()      geek     =     make_tuple  (  'a'       10       15.5  );      // Printing initial tuple values using get()      cout      < <     'The initial values of tuple are: '  ;      cout      < <     get   <  0  >  (  geek  )      < <     ' '      < <     get   <  1  >  (  geek  );      cout      < <     ' '      < <     get   <  2  >  (  geek  )      < <     endl  ;      // Use of get() to change values of tuple      get   <  0  >  (  geek  )     =     'b'  ;      get   <  2  >  (  geek  )     =     20.5  ;      // Printing modified tuple values      cout      < <     'The modified values of tuple are: '  ;      cout      < <     get   <  0  >  (  geek  )      < <     ' '      < <     get   <  1  >  (  geek  );      cout      < <     ' '      < <     get   <  2  >  (  geek  )      < <     endl  ;      return     0  ;   }   

Sortir
The initial values of tuple are: a 10 15.5 The modified values of tuple are: b 10 20.5  

Explication : Dans le code ci-dessus, get() modifie la 1ère et la 3ème valeur du tuple. 

3. tuple_size : Il renvoie le nombre d'éléments présents dans le tuple. 

CPP
   #include          #include         using     namespace     std  ;   int     main  ()     {          // Initializing tuple      tuple   <  char       int       float  >     geek  (  20       'g'       17.5  );      // Use of size to find tuple_size of tuple      cout      < <     'The size of tuple is: '  ;      cout      < <     tuple_size   <  decltype  (  geek  )  >::  value  ;      return     0  ;   }   

Sortir
The size of tuple is: 3 

4. échange() : Le swap() échange les éléments des deux tuples différents.

CPP
   #include          #include         using     namespace     std  ;   int     main  ()     {          // Initializing 1st tuple      tuple   <  int       char       float  >     tup1  (  20       'g'       17.5  );      // Initializing 2nd tuple      tuple   <  int       char       float  >     tup2  (  10       'f'       15.5  );      // Printing 1st and 2nd tuple before swapping      cout      < <     'The first tuple elements before swapping are: '  ;      cout      < <     get   <  0  >  (  tup1  )      < <     ' '      < <     get   <  1  >  (  tup1  )      < <     ' '      < <     get   <  2  >  (  tup1  )      < <     endl  ;      cout      < <     'The second tuple elements before swapping are: '  ;      cout      < <     get   <  0  >  (  tup2  )      < <     ' '      < <     get   <  1  >  (  tup2  )      < <     ' '      < <     get   <  2  >  (  tup2  )      < <     endl  ;      // Swapping tup1 values with tup2      tup1  .  swap  (  tup2  );      // Printing 1st and 2nd tuple after swapping      cout      < <     'The first tuple elements after swapping are: '  ;      cout      < <     get   <  0  >  (  tup1  )      < <     ' '      < <     get   <  1  >  (  tup1  )      < <     ' '      < <     get   <  2  >  (  tup1  )      < <     endl  ;      cout      < <     'The second tuple elements after swapping are: '  ;      cout      < <     get   <  0  >  (  tup2  )      < <     ' '      < <     get   <  1  >  (  tup2  )      < <     ' '      < <     get   <  2  >  (  tup2  )      < <     endl  ;      return     0  ;   }   


Sortir

 The first tuple elements before swapping are: 20 g 17.5   
The second tuple elements before swapping are: 10 f 15.5
The first tuple elements after swapping are: 10 f 15.5
The second tuple elements after swapping are: 20 g 17.5

5. égalité() : Le travail de tie() consiste à décompresser les valeurs du tuple en variables distinctes. Il existe deux variantes de tie() avec et sans « ignorer », « ignorer » ignore un élément de tuple particulier et l'empêche d'être décompressé.

CPP
   #include          #include         // for tie() and tuple   using     namespace     std  ;   int     main  ()     {         // Initializing variables for unpacking      int     i_val  ;      char     ch_val  ;      float     f_val  ;             // Initializing tuple      tuple   <  int       char       float  >     tup1  (  20       'g'       17.5  );      // Use of tie() without ignore      tie  (  i_val       ch_val       f_val  )     =     tup1  ;          // Displaying unpacked tuple elements without ignore      cout      < <     'The unpacked tuple values (without ignore) are: '  ;      cout      < <     i_val      < <     ' '      < <     ch_val      < <     ' '      < <     f_val  ;      cout      < <     endl  ;          // Use of tie() with ignore      // ignores char value      tie  (  i_val       ignore       f_val  )     =     tup1  ;          // Displaying unpacked tuple elements with ignore      cout      < <     'The unpacked tuple values (with ignore) are: '  ;      cout      < <     i_val      < <     ' '      < <     f_val  ;      cout      < <     endl  ;      return     0  ;   }   

Sortir
The unpacked tuple values (without ignore) are: 20 g 17.5 The unpacked tuple values (with ignore) are: 20 17.5  

6. tuple_cat() : Cette fonction concatène deux tuples et renvoie un nouveau tuple. 

CPP
   #include          #include         // for tuple_cat() and tuple   using     namespace     std  ;   int     main  ()     {      // Initializing 1st tuple      tuple   <  int       char       float  >     tup1  (  20       'g'       17.5  );      // Initializing 2nd tuple      tuple   <  int       char       float  >     tup2  (  30       'f'       10.5  );          // Concatenating 2 tuples to return a new tuple      auto     tup3     =     tuple_cat  (  tup1       tup2  );          // Displaying new tuple elements      cout      < <     'The new tuple elements in order are: '  ;      cout      < <     get   <  0  >  (  tup3  )      < <     ' '      < <     get   <  1  >  (  tup3  )      < <     ' '          < <     get   <  2  >  (  tup3  )      < <     ' '      < <     get   <  3  >  (  tup3  )      < <     ' '          < <     get   <  4  >  (  tup3  )      < <     ' '      < <     get   <  5  >  (  tup3  )      < <     endl  ;      return     0  ;   }   

Sortir
The new tuple elements in order are: 20 g 17.5 30 f 10.5