Я определил класс Movie
.И этот класс имеет
static set<Movie> movies;
У меня также есть статическая функция-член:
static Movie& find_by_title(string);
Я возвращаю ссылку, потому что я хочу изменить фильм, как только я его найду (Я хочу оценить это).Итак, в реализации у меня есть
Movie& Movie::find_by_title(string title) {
set<Movie>::iterator it;
for (it = movies.begin(); it != movies.end(); ++it)
if (it->title == title) return *it;
}
Но он возвращает ошибку, потому что *it
имеет тип const Movie
(а функция возвращает Movie&
).Но тогда как получить этот элемент таким образом, чтобы я мог его изменить?Указатель также будет в порядке, все, что позволит впоследствии изменить элемент.
movies.find(*it)
также возвращает итератор в const Movie
, поэтому он также не работает, когда я пытаюсь вернуться*(movies.find(*it))
.