000
07.10.2003, 23:13 Uhr
~(un)wissender
Gast
|
Folgendes funktioniert mit der STL:
C++: |
#include <functional> #include <algorithm> #include <iostream> #include <iterator> using namespace std;
struct intvgl //: //public binary_function<int,int,bool> { bool operator()(int one, int two) const { if(one == two) return true; else return false; } };
int main() { int test[] = {1,2,2,2,5,6,9,9,9}; copy(test, test + 9, ostream_iterator<int>(cout)); unique(test, test + 9, intvgl()); cout << "\n"; copy(test, test + 7, ostream_iterator<int>(cout)); return 0; }
|
Nun meine Frage: Wie muss bspw. unique deklariert sein, um so zu funktionieren? Mich erstaunt das ganze, weil unique ja eigentlich meine Klasse intvgl gar nicht kennt und dementsprechend auch keine passende Version von unique existieren kann. Wenn ich noch von binary_function ableiten würde, OK, aber es klappt auch ohne! Wieso? |