namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:include:ranges

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
kennen:include:ranges [2024-02-22 20:54] – [Beispiele] rrichterkennen:include:ranges [2024-02-22 21:02] – [Beispiele] rrichter
Zeile 126: Zeile 126:
  
 ===== Beispiele ===== ===== Beispiele =====
 +<file>
 +empty<T>                                 : []
 +single(42)                               : [42]
 +iota(0,6)                                : [0, 1, 2, 3, 4, 5]
 +iota(0) | take(3)                        : [0, 1, 2]
 +repeat(6) | take(3)                      : [6, 6, 6]
  
 +counted(begin(v),size(v))                : [1, 3, 5, 4, 2]
 +v | all                                  : [1, 3, 5, 4, 2]
 +v | drop_while(below_5)                  : [5, 4, 2]
 +v | enumerate                            : [(0, 1), (1, 3), (2, 5), (3, 4), (4, 2)]
 +v | filter(below_5)                      : [1, 3, 4, 2]
 +v | reverse                              : [2, 4, 5, 3, 1]
 +v | take_while(below_5)                  : [1, 3]
 +v | transform(square)                    : [1, 9, 25, 16, 4]
 +
 +v | chunk(3)                             : [[1, 3, 5], [4, 2]]
 +v | chunk_by(std::ranges::less{})        : [[1, 3, 5], [4], [2]]
 +v | pairwise_transform(double_digit)     : [13, 35, 54, 42]
 +v | pairwise                             : [(1, 3), (3, 5), (5, 4), (4, 2)]
 +v | slide(2)                             : [[1, 3], [3, 5], [5, 4], [4, 2]]
 +v | stride(2)                            : [1, 5, 2]
 +
 +s                                        : ['A', 'B', ' ', 'C', 'D', 'E']
 +s | split(' '                          : [['A', 'B'], ['C', 'D', 'E']]
 +s | split(' ') | join                    : ['A', 'B', 'C', 'D', 'E']
 +s | split(' ') | join_with("<>"s)        : ['A', 'B', '<', '>', 'C', 'D', 'E']
 +
 +zip(v, s)                                : [(1, 'A'), (3, 'B'), (5, ' '), (4, 'C'), (2, 'D')]
 +zip_transform(double_digit, v, v)        : [11, 33, 55, 44, 22]
 +cartesian_product(v|take(2), s|take(2))  : [(1, 'A'), (1, 'B'), (3, 'A'), (3, 'B')]
 +
 +m                                        : {"answer": 42, "wrong": 54}
 +m | keys                                 : ["answer", "wrong"]
 +m | values                               : [42, 54]
 +</file>
 +erzeugt mit dem Programm
 <code cpp views_examples.cpp> <code cpp views_examples.cpp>
 #include <ranges> #include <ranges>
Zeile 294: Zeile 330:
 } }
 </code> </code>
-erzeugt die Ausgabe 
-<file> 
-empty<T>                                 : [] 
-single(42)                               : [42] 
-iota(0,6)                                : [0, 1, 2, 3, 4, 5] 
-iota(0) | take(3)                        : [0, 1, 2] 
-repeat(6) | take(3)                      : [6, 6, 6] 
  
-counted(begin(v),size(v))                : [1, 3, 5, 4, 2] 
-v | all                                  : [1, 3, 5, 4, 2] 
-v | drop_while(below_5)                  : [5, 4, 2] 
-v | enumerate                            : [(0, 1), (1, 3), (2, 5), (3, 4), (4, 2)] 
-v | filter(below_5)                      : [1, 3, 4, 2] 
-v | reverse                              : [2, 4, 5, 3, 1] 
-v | take_while(below_5)                  : [1, 3] 
-v | transform(square)                    : [1, 9, 25, 16, 4] 
- 
-v | chunk(3)                             : [[1, 3, 5], [4, 2]] 
-v | chunk_by(std::ranges::less{})        : [[1, 3, 5], [4], [2]] 
-v | pairwise_transform(double_digit)     : [13, 35, 54, 42] 
-v | pairwise                             : [(1, 3), (3, 5), (5, 4), (4, 2)] 
-v | slide(2)                             : [[1, 3], [3, 5], [5, 4], [4, 2]] 
-v | stride(2)                            : [1, 5, 2] 
- 
-s                                        : ['A', 'B', ' ', 'C', 'D', 'E'] 
-s | split(' '                          : [['A', 'B'], ['C', 'D', 'E']] 
-s | split(' ') | join                    : ['A', 'B', 'C', 'D', 'E'] 
-s | split(' ') | join_with("<>"s)        : ['A', 'B', '<', '>', 'C', 'D', 'E'] 
- 
-zip(v, s)                                : [(1, 'A'), (3, 'B'), (5, ' '), (4, 'C'), (2, 'D')] 
-zip_transform(double_digit, v, v)        : [11, 33, 55, 44, 22] 
-cartesian_product(v|take(2), s|take(2))  : [(1, 'A'), (1, 'B'), (3, 'A'), (3, 'B')] 
- 
-m                                        : {"answer": 42, "wrong": 54} 
-m | keys                                 : ["answer", "wrong"] 
-m | values                               : [42, 54] 
-</file> 
kennen/include/ranges.txt · Zuletzt geändert: 2024-02-22 21:04 von rrichter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki