我正在开发一个游戏库,我可以在其中添加或删除我的游戏。 到目前为止,我刚刚制作了一个标准的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;
}
答案 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
向量。更改迭代器类型。