搜索或发现向量问题内部

SEARCH or FOUND inside of vector problem

本文关键字:问题 内部 向量 发现 搜索      更新时间:2023-10-16

可能重复:
如何在std::向量中查找项?

给定这两类:

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.
}

我想在书的矢量里面搜索。如果书在书的向量中,它什么也不做。如果Book不在Book bookLists.push_back(ref); 的矢量中

您应该使用:

std::find(bookLists.begin(), bookLists.end(), bookItemToBeSearched)!=bookLists.end().

std::find返回:
与值OR匹配的范围中第一个元素的迭代器
如果没有匹配的元素,函数将返回last。

查看有关std::find算法的更多信息请点击此处

void add(const Book& ref)
{
   if(std::find(bookLists.begin(), bookLists.end(), ref)==bookLists.end())
   {
       bookLists.push_back(ref);
   }
}