Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Generiska algoritmer Kan användas på containertyper och arrays Använder iteratorer Implementerar vanligt förekommande operationer t.ex. min, max, leta upp, sortera Algoritmen (tillvägagångssättet) är i princip oberoende av container-sort och vilken typ som lagras i containern/arrayen
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Exempel min() Antag första elementet minst. Jämför med nästa. Om det är mindre, antag att det är minst. Då det är slut på element vet vi att vårt sista antagande är rätt
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Generisk implementation Vi behöver veta Hur vi får fram första elementet Hur vi får fram nästa element Hur man jämför element Hur vi vet att det är slut på element
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT exempel ur algorith.h template ForwardIterator min_element (ForwardIterator first, ForwardIterator last) { if (first == last) return first; ForwardIterator result = first; while (++first != last) if (*first < *result) result = first; return result; }
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT exempel ur algorith.h template InputIterator find (InputIterator first, InputIterator last, const T& value) { while (first != last && *first != value) ++first; return first; }