for_each + Funktionsobjekt
-
ich habe folgenden Code:
class Manipulator : public unary_function<string,bool>{ public: virtual bool operator() (string& s) = 0; ... }; class Contains : public Manipulator{ public: Contains(string _param) : Manipulator() , param(_param) {} virtual bool operator() (string& s) { ... // <---- Hier kommt der Debugger nie an } private: string param; }; ... int main() { vector<string> vec; ... for_each(vec.begin(),vec.begin(),Contains("hello")); }Und das simple problem, dass for_each nie operator() der Funktionsobjekt Klasse aufruft.
Woran kann das liegen, bzw. was wird statt dessen aufgerufen?
-
In deinem Auszug ist der Vektor leer, lass dir mal die größe ausgeben.
-
Da steht ja nicht umsonst ... - Der vector ist nicht leer!
-
nirsaja schrieb:
Da steht ja nicht umsonst ... - Der vector ist nicht leer!
zitier mir die stelle doch mal wo das steht
-
int main() { vector<string> vec; ... // <---- ?!?! for_each(vec.begin(),vec.begin(),Contains("hello")); }
-
So und jetzt schau dir das Zitat nochmal ganz genau an.
Nen Tipp: Wenn first == last, dann bricht for_each ab
-
ok

-
... c!= //vektor ist leer
-
... c!= //vektor ist leer
Er ist nich leer, leerer hat recht, der Bereich, den ich übergebe, vec.begin() - vec.begin() ist leer. Wie sonst...
Ok, danke, nur vertippt und zu viele Bäume hier im Wald...