不能在c ++中使用迭代执行for循环

时间:2012-04-03 10:16:25

标签: c++ visual-studio-2010 vector iteration

我正在开发一个游戏库,我可以在其中添加或删除我的游戏。 到目前为止,我刚刚制作了一个标准的3个游戏列表,但是当我试图测试它时。它给了我一个错误。

我试图在我的向量上进行迭代,但由于某种原因它不起作用。我找不到那个理由。

这是我的代码:

#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;

}

3 个答案:

答案 0 :(得分:4)

你的迭代器类型和你的vetcor是不兼容的。

使用:

vector<string>::const_iterator iter;

为了简化操作,最好输入你的收藏类型:

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

答案 1 :(得分:2)

你的迭代器与容器类型不匹配:以这种方式声明

vector<string>::const_iterator iter;

答案 2 :(得分:0)

您正尝试使用string const迭代器迭代int向量。更改迭代器类型。