高手帮看下这个模板问题

MagicHandz 2008-11-13 02:24:06

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...

这两个错误怎么回事?
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MagicHandz 2008-11-13
  • 打赏
  • 举报
回复
只能改名么?这是编译器BUG还是程序的问题啊?
帅得不敢出门 2008-11-13
  • 打赏
  • 举报
回复
我估计是哪本书里的吧 .
已经见过N次这样的问题了.

改名吧
MagicHandz 2008-11-13
  • 打赏
  • 举报
回复
能解释下怎么回事么,楼上的
hai040 2008-11-13
  • 打赏
  • 举报
回复
class iterator 换个类名

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧