只是一个问题,关于 const_iterator 与迭代器的使用。更具体地说,使用 distance()。下面是一些基本代码,它们只是整理出用户输入的“fav_games”列表(在应用程序的早期)。我还想删除向量的“索引”,以便打印出编号列表。
部分代码:
int main()
{
vector<string> fav_games;
vector<string>::const_iterator iter; // const_iterator no worky with "distance()"
if (fav_games.size() > 0) {
cout << "\n\nCurrent game list: \n";
for (iter = fav_games.begin(); iter != fav_games.end(); ++iter)
{
cout << distance(fav_games.begin(), iter) << ". " << *iter << endl;
}
}
return 0;
}
我的问题是为什么“const_iterator”不起作用,而我被迫使用“iterator”。寻找它背后的“理论”。“distance()”似乎是期待和“迭代器”——而不是“const_iterator”。..为什么?
如果我使用“const_iterator”,仅供参考编译错误:
错误 1 错误 C2782: 'iterator_traits<_Iter>::difference_type std::distance(_InIt,_InIt)' : 模板参数 '_InIt' 不明确 z:\micah\c++\favgames\favgames\favgames.cpp 49 1 favgames
谢谢!