【发布时间】:2011-01-27 19:25:31
【问题描述】:
在以下代码中声明迭代器 i 的正确方法是什么?
#include <iostream>
#include <vector>
using namespace std;
template<class Mat>
void f(const Mat& mat)
{
typedef typename Mat::value_type::iterator itr;
//itr i = (mat.begin())->begin(); //This Line Gives an error
typeof((mat.begin())->begin()) i = (mat.begin())->begin();
}
int main()
{
vector<vector<int> > vvi;
f(vvi);
return 0;
}
【问题讨论】:
-
不使用 const 是错误的。我无法从错误行中理解这一点。
标签: c++ iterator typedef typetraits