2012-04-03 33 views
0

我正在開發一個遊戲庫,我可以在其中添加或刪除我的遊戲。 到目前爲止,我只是在標準的3場比賽中做了一個列表,但是當我試圖測試它時。它給了我一個錯誤。無法在C++中執行迭代循環

我想在我的向量上做一次迭代,但由於某種原因它不起作用。我找不到那個理由。

這裏是我的代碼:

#include <iostream> 
#include <string> 
#include <vector> 

using namespace std; 

int main() 
{ 

vector<int>::const_iterator iter; 

vector<string> games; 
games.push_back("Crysis 2"); 
games.push_back("God of War 3"); 
games.push_back("FIFA 12"); 

cout <<"Welcome to your Games Library.\n"; 
cout <<"These are your games:\n"; 
for (iter = games.begin(); iter != games.end(); ++iter) 
{ 
    cout <<*iter <<endl; 
} 

return 0; 

} 
+0

也許你應該說實際的錯誤是什麼,而不是讓人們猜測。很好,但你包括完整的代碼。 – jcoder 2012-04-03 11:34:23

回答

4

的類型,你iterator和你vetcor是不相容的。

使用:

vector<string>::const_iterator iter; 

爲了方便起見,可能會更好的typedef您的收藏類型:

typedef std::vector<std::string> GamesListType; 
GamesListType::const_iterator iter; 
GamesListType games; 
+0

我簡直不敢相信我沒有看到。感謝您的其他信息! – Stijn 2012-04-03 10:23:48

+0

+1快速響應 – 2012-04-03 10:35:59

2

你的迭代器不匹配容器類型:聲明這樣

vector<string>::const_iterator iter; 
+0

當然!!我現在感到非常愚蠢。感謝您在我愚蠢的職位上的答案:) – Stijn 2012-04-03 10:22:18

+0

如果他們解決了您的問題,您應該接受答案 – Attila 2012-04-03 10:28:53

0

您正在嘗試使用迭代string載體const迭代器。改變你的迭代器類型。

+0

謝謝男人,愚蠢的我沒有看到它。 – Stijn 2012-04-03 10:28:27

+0

它沒問題。我正在投票結束這個,所以沒有更多的答案發布。你最好接受一個答案。 – 2012-04-03 10:31:51