SEARCH or FOUND inside of vector problem [duplicate]
Possible D开发者_JS百科uplicate:
How to find an item in a std::vector?
Given these two classes:
class Book
{
private:
string title;
int category;
public:
Book(const string& , int num);
}
Book(const string& name, int num)
:title(name), category(num)
{ }
class Reader
{
private:
string reader_name;
vector <Book> bookLists;
public:
void add(const Book &ref);
};
void add(const Book& ref)
{
// My problem is here.
}
I want to search inside the vector of Book. If the Book is in the vector of Book, it does nothing. If the Book is not in the vector of Book bookLists.push_back(ref);
You should use:
std::find(bookLists.begin(), bookLists.end(), bookItemToBeSearched)!=bookLists.end().
std::find
returns:
An iterator to the first element in the range that matches value OR
If no element matches, the function returns last.
Check more about the std::find
algorithm here.
void add(const Book& ref)
{
if(std::find(bookLists.begin(), bookLists.end(), ref)==bookLists.end())
{
bookLists.push_back(ref);
}
}
精彩评论