同志們,C++矢量迭代後,更多的數據並不dereferencable添加
下不起作用:
vector<string>::iterator c;
for(c = holdtype.begin(); c != holdtype.end(); c++)
{
if(*c == "preposition")
{
c++;
if(*c == "unknown")
{
c++;
if(*c == "unknown")
{
c++;
if(*c == "unknown")
{
cout <<endl <<"This should be a verb " << *c;
}
}
}
}
}
奇怪的是,它適用於一定量的數據。一旦它超過大約30字,它就停止工作,並給我「不可忽視的錯誤」。
我已經嘗試這樣做,它提供了相同的結果:
vector<string>::iterator c;
c = holdtype.begin();
while(c != holdtype.end())
{
if(*c == "preposition")
{
if(c != holdtype.end()) { c++; } else { break; }
if(*c == "unknown")
{
if(c != holdtype.end()) { c++; } else { break; }
if(*c == "unknown")
{
if(c != holdtype.end()) { c++; } else { break; }
if(*c == "unknown")
{
cout <<endl <<"This should be a verb " << *c;
}
}
}
}
if(c == holdtype.end()) { break; } else {c++;}
}
我一直在努力,現在摸不着頭腦了幾天,我是一個初學者。
你想用這段代碼實現什麼? – Johnsyweb 2012-02-05 04:47:35
所以,讓我們說c == holdtype.end()-1,然後你增加它,然後你就會遵從它。你增加後不檢查。 – 2012-02-05 04:49:17