高手帮看下这个模板问题
template<typename T1, typename T2>
class map_vector
{
public:
typedef pair<T1,T2> elem;
typedef T1 key;
typedef map_vector<T1,T2>::iterator iter;
typedef vector< pair<T1,T2> >::iterator iter_d;
iter_d begin()
{
return data.begin();
}
iter_d end()
{
return data.end();
}
void insert(const elem& e)
{
data.push_back(e);
}
class iterator
{
typename vector<pair<T1,T2> >::iterator it;
public:
iterator(const iter_d& i):it(i){}
iterator(const iter& i):it(i.it){}
iterator(){}
iter operator++()
{
return it++;
}
const iter& operator=(const iter& i)
{
it = i.it;
return *this;
}
const iter& operator=(const iter_d& i)
{
it = i;
return *this;
}
bool operator!=(const iter& i)
{
return it != i.it;
}
bool operator!=(const iter_d& i)
{
return it != i;
}
};
private:
vector<pair<T1,T2> > data;
};
void main()
{
map_vector<int, int> mv;
map_vector<int, int>::iterator it(mv.begin());
int i = 1;
mv.insert(make_pair(5,i++));
mv.insert(make_pair(4,i++));
mv.insert(make_pair(6,i++));
mv.insert(make_pair(7,i++));
mv.insert(make_pair(10,i++));
mv.insert(make_pair(8,i++));
for (it;it.operator !=(mv.end());it.operator ++())
{
//do something
}
}
c:\documents and settings\administrator\桌面\c++ tests\map_vector\main.cpp(17) : error C2036: 'struct std::iterator' : unknown size
c:\documents and settings\administrator\桌面\c++ tests\map_vector\main.cpp(17) : error C2036: 'struct std::iterator' : unknown size
map_vector.cpp
Error executing cl.exe.
Creating browse info file...
这两个错误怎么回事?