通过向量迭代

时间:2013-07-14 15:26:58

标签: c++ vector iterator text-files

我正在尝试将文本文件中的字符串值添加到矢量中。在这样做时,我还检查字符串中的字符数,然后当达到具有所需字符数的单词时,我将该字符串添加到向量中。

但是当我调试我的程序时,我一直看到超出范围的异常,并打印出比所需字符数更高的字符串。

vector<string> words;
vector<string> chosenWords;
ifstream in("WordDatabase.txt");

while(in) {
  string word;
  in >> word;
  cout << word << endl;
  //push in selected words based on num of chars
  words.push_back(word);
}

for(vector<string>::iterator itr=words.begin(); itr!=words.end();++itr)
{
    if((*itr).length() >= 2 || (*itr).length() <= 7)
    {
        cout << (*itr) << endl;
        chosenWords.push_back(*itr);
    }
}

1 个答案:

答案 0 :(得分:2)

长度为2+或7-听起来像一个奇怪的条件。最有可能的条件是:

if((*itr).length() >= 2 && (*itr).length() <= 7)

作为旁注,你最好还是阅读这样的文字:

string word;
while(in >> word) {
  cout << word << endl;
  //push in selected words based on num of chars
  words.push_back(word);
}