Resource icon

[C++ Quicktip] Iterieren in Zweierpärchen

-AB-

Well-Known Member
c-b Team
c-b Experte
#1
-AB- hat eine neue Ressource erstellt:

[C++ Quicktip] Iterieren in Zweierpärchen - Über konsekutive Paare in einem Container iterieren.

Und wieder ein winziger Quicktip - da Iterieren in verschiedenen Varianten wohl meine Kernkompetenz ist, ist das auch heute mal wieder Thema :)

Es geht 1) um folgendes: Angenommen, ich habe einen Container mit Elementen, aber eigentlich interessiert mich, was *zwischen* diesen Elementen ist - sagen wir, ich interessiere mich für die jeweilige Differenz (diskrete Ableitung) einer Reihe von Zahlen:

C++:
std::vector<int> data = {1, 6, 4, 8, 3, 9, 12};
Der für uns interessante...
Weitere Informationen zu dieser Ressource...
 

German

Well-Known Member
c-b Experte
#2
da Iterieren in verschiedenen Varianten wohl meine Kernkompetenz ist
Naja, eigentlich sind es wohl eher Lambda Funktionen, die das Ganze erst richtig interessant machen. Ohne "Action" ist so ein Funktionstemplate nur die Hälfte wert ;) Aber gut, darüber findet sich genügend im Net.

Worüber ich immer noch verzweifle, sind die Typdeklarationen mit gleichzeitiger Prüfung der Eignung der Eingangsparameter, à la
typename std::enable_if<std::is_base_of<std::forward_iterator_tag, typename ForwardIterator::iterator_category>::value, Action>::type
Da würde ich mir von dir noch mal eine Erklärung und ein How To wünschen :)
 

-AB-

Well-Known Member
c-b Team
c-b Experte
#3
Naja, eigentlich sind es wohl eher Lambda Funktionen, die das Ganze erst richtig interessant machen. Ohne "Action" ist so ein Funktionstemplate nur die Hälfte wert
Natürlich kann man auch einen Funktionszeiger oder einen herkömmlichen Funktor übergeben ;) Aber ja, erst mit Lambdas ergibt das ganze wirklich Sinn, ansonsten ist der Code schnell mal zu verstreut.

Da würde ich mir von dir noch mal eine Erklärung und ein How To wünschen
Da hatte ich doch mal ein Metaprogramming-101 angefangen :) "SFINAE und enable_if" könnte aber der nächste Teil heißen, groß genug ist das Topic ja...
 

German

Well-Known Member
c-b Experte
#4
Natürlich kann man auch einen Funktionszeiger oder einen herkömmlichen Funktor übergeben ;)
Da müsste ich dich aber schlecht kennen, wenn du dabei an so etwas gedacht hättest :D

Da hatte ich doch mal ein Metaprogramming-101 angefangen :)
Hab ich auch gelesen und für gut befunden. Beim Nachbauen bin ich aber an meine Grenzen gestoßen. Und zwar genau an dem Punkt.

Welche Begriffe und Abkürzungen hättest du sonst noch anzubieten, wo es sich lohnt Google anzuwerfen? Sehr interessant!
 
Oben