KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a class representing a user called Nick and I want to use std::find_if on it, where I want to find if the userlist vector has an object included with the same username I pass in. I did a few attempts by trying to create a new Nick object for the username I want to test and overloading the == operator and then trying to use find/find_if on the object: std::vector<Nick> userlist; std::string username = "Nicholas"; if (std::find(userlist.begin(), userlist.end(), new Nick(username, false)) != userlist.end())) { std::cout << "found"; } I have overloaded the == operator so comparing Nick == Nick2 should work, but the function returns error C2678: binary '==' : no operator found which takes a left-hand operand of type 'Nick' (or there is no acceptable conversion) . Here is my Nick class for reference: class Nick { private: Nick() { username = interest = email = ""; is_op = false; }; public: std::string username; std::string interest; std::string email; bool is_op; Nick(std::string d_username, std::string d_interest, std::string d_email, bool d_is_op) { Nick(); username = d_username; interest = d_interest; email = d_email; is_op = d_is_op; }; Nick(std::string d_username, bool d_is_op) { Nick(); username = d_username; is_op = d_is_op; }; friend bool operator== (Nick &n1, Nick &n2) { return (n1.username == n2.username); }; friend bool operator!= (Nick &n1, Nick &n2) { return !(n1 == n2); }; };
Tags (comma-separated)
Save Edits
Cancel