0

movieName の stringstream を追加した後、以下のコードで List Iterator Not incrementable を取得していますが、エラーを解決する方法がわかりません。ファイルから読み込んでアイテムをリストに追加し、リストを繰り返して、映画のタイトルから別のリストに単語を追加しようとしています。どんな助けでも大歓迎です!

#include <iostream>
#include <string>
#include <list>
#include <fstream>
#include <sstream>

using namespace std;

int main()
{
list <string> movieList;
list <string>::iterator iterMovie; 

list <string> *titleWordList = new list <string>;
list <string>::iterator iterTitleWord; 

ifstream inFile;
inFile.open("JamesBond.txt"); 

if (!inFile)
{
    cout << "Could not find the specified file.";
}
else 
{
    movieList.clear();
    string movieName;

    while(getline(inFile,movieName))
    {
        movieList.push_back((movieName));

        /*
        for each(string movieName in movieList)
        {
            titleWordList->push_back(movieName); 
        }
        */

        stringstream ss(movieName);
        while (ss >> movieName)
        {
             titleWordList->push_back(movieName); 
        }

    }
}

if (movieList.empty())
{
    cout << "No Data Found!" << endl; 
}
else
{
    cout << "Writing Output: \n\n";

    for (iterMovie=movieList.begin(); iterMovie !=movieList.end(); ++iterMovie)
    {
        cout << *iterMovie << endl; 

    }

    for (iterTitleWord=movieList.begin(); iterTitleWord != movieList.end();     ++iterMovie)
    {
        cout << *iterTitleWord << endl;
        cout << &titleWordList; 
    }


  }
}
4

1 に答える 1

2

2 番目forにコピー ペースト エラーがあります。++iterTitleWord代わりに++iterMovie.

また、@Greg が提案したように、iterTitleWord=movieList.begin()andはそれぞれ および でiterTitleWord != movieList.end()ある必要がiterTitleWord=titleWordList->begin()ありiterTitleWord != titleWordList->end()ます。

于 2012-06-04T04:59:01.723 に答える