嗨,我正在尝试使用向量来存储电影列表,但是当我尝试计算电影时,我只得到第一部。我不确定为什么代码会这样做。如果有人可以帮助它会非常感谢。
Movies::Movies(string fn){loadMovies(fn);}
 int Movies::getMovieCount() const {return movies.size();}
 const Movie * Movies::getMovie(string mc) const {
Movie* p = *movies.data();
for(unsigned int i = 0; i < movies.size(); i++)
{
    if(p->getTitle().find(mc) ==string::npos)
    {
        cout<<string::npos;
        printf("test:%d\n",i);
        return p;
    }
    p++;
}
return NULL;
}
 Movies::~Movies() {
for(std::vector<Movie*>::const_iterator ptr = movies.begin(); ptr != movies.end(); ptr++)
{
    delete *ptr;
}
}
void Movies::loadMovies(string fn) {
ifstream iS(fn);  // technically should be c_str
string s;
getline(iS, s); // skip heading
getline(iS, s);
while(!iS.eof()) {
    Movie* m = new Movie(s);
    movies.push_back(m);
    getline(iS, s);
}
iS.close();
sort(movies.begin(), movies.end());
}