Tupels in C++

Een tupel is een object dat een aantal elementen kan bevatten. De elementen kunnen van verschillende gegevenstypen zijn. De elementen van tuples worden geïnitialiseerd als argumenten in de volgorde waarin ze worden benaderd.  Tupels zijn een veelzijdige gegevensstructuur voor het groeperen van waarden. Om te begrijpen hoe u tupels in C++ en hun toepassingen gebruikt, moet u het C++ cursus biedt uitgebreide tutorials en voorbeelden.

Bewerkingen op Tuple

1. krijg(): get() wordt gebruikt om toegang te krijgen tot de tuple-waarden en deze te wijzigen. Het accepteert de index en de tuple-naam als argumenten om toegang te krijgen tot een bepaald tuple-element. 

2. make_tuple(): make_tuple() wordt gebruikt om tuple waarden toe te wijzen. De doorgegeven waarden moeten in overeenstemming zijn met de waarden die in tuple zijn gedeclareerd. 

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  ;   }   

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

Uitleg : In de bovenstaande code wijzigt get() de 1e en 3e waarde van tuple. 

3. tuple_size: Het retourneert het aantal elementen dat aanwezig is in de tupel. 

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  ;   }   

Uitvoer
The size of tuple is: 3 

4. ruilen(): De swap() verwisselt de elementen van de twee verschillende tupels.

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  ;   }   


Uitvoer

 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. gelijkspel() : Het werk van tie() is het uitpakken van de tupelwaarden in afzonderlijke variabelen. Er zijn twee varianten van tie() met en zonder 'ignore'. 'ignore' negeert een bepaald tuple-element en voorkomt dat het wordt uitgepakt.

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  ;   }   

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

6. tuple_cat(): Deze functie voegt twee tupels samen en retourneert een nieuwe tupel. 

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  ;   }   

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

Dit Vind Je Misschien Leuk