У меня есть карта со строкой (Пользователь) и список книг для каждого пользователя
std::map<std::string,std::list<Book>> app;
app.insert(std::make_pair(Friend1,borrowedBooks));
app.insert(std::make_pair(Friend2,bookFr));
В классе Book у меня есть атрибут с именем BookRating
class Book{
private :
int bookRating_;
public:
int getRating(){ return bookRating_;}
И я я пытаюсь отобразить все книги (от каждого пользователя), которые имеют 5-звездочный рейтинг, и я сделал это
auto it=app.begin();
while(it != app.end()){
if((it->second).getRating()==5){
print(app);
}
it++;
}
Где печатать веселье c выглядит так:
void print(std::map<std::string,std::list<Book>> m){
for(auto it=m.begin();it!=m.end();++it){
std::cout<<"["<<it->first<<"," <<it->second<<"]"<<std::endl;
}
}
У меня ошибка, которая звучит так:
error: 'class std::__cxx11::list<Book>' has no member named 'getRating'
if((it->second).getRating()==5){
^
Так что проблема с getRating, и я не знаю почему, поэтому я надеюсь, что вы можете мне помочь:)