我正在尝试使用自己的链表实现(称为booklist)来实现数据库,并为我的实现创建了一个Book类。下面的函数属于一个名为BookDatabase的类,它使用Book和BookList类。在我的if语句中,我得到的错误表达式必须具有类类型。这是代码。 books是BookDatabase类中使用的BookList,getBookISBN是Book Class的函数。 find函数返回BookList指定索引中的Book对象。
void BookDatabase::removeBook(const string bookISBN){
bool matchup = false;
for (int i = 1; i < books.getLength() && !matchup; i++){
if (bookISBN == ((books.find(i)).getbookISBN()){
books.remove(i);
matchup = true;
}
}
if (!matchup) {
cout << "No matchup found" << endl;
}
}
答案 0 :(得分:0)
if (bookISBN == ((books.find(i)).getbookISBN()){
这条线令人担忧。如果它没有编译,可能是因为books.find(i)没有返回正确的类型。
此外,find是数字索引查找的奇怪名称。 (通过代码,你在这里做的主要是数组样式的索引)。另外,如果find是O(N),这可能是一个列表,那么这个代码就是O(N ^ 2),这真的很糟糕。