| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:请教自己写一个跌代器
只看楼主 加入收藏
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
 问题点数:0 回复次数:5 
请教自己写一个跌代器

#include<iostream>
#include<algorithm>
using namespace std;
template<class T>
class Array
{
public:
T& operator[](int);
Array(int);
~Array();
int get_size() const{return size;}
private:
T* a;
int size;
Araay();
T dummy_val;
};
template<class T>
T& Array<T>::operator [](int i)
{
if(i<0 || i>=size)
{
cout<<"error"<<endl;
return dummy_val;
}
return a[i];
}
template<class T>
Array<T>::Array(int s)
{
a=new T[size=s];
}
template<class T>
Array<T>:: ~Array()
{
delete a;
}
template<class T>
ostream& operator<<(ostream& out,Array<T>& a)
{
for(int i=0;i<a.get_size();i++)
out<<a[i]<<" ";
out<<endl;
return out;
}
template<class T>
istream& operator>>(istream& in,Array<T>& a)
{
for(int i=0;i<a.get_size();i++)
in>>a[i];
return in;
}
template<class T>
class ForwardIterator
{
public:
ForwardIterator(Array<T>&);
bool hasMoreElements();
int nextElement();
private:
Array<T>* t;
};
template<class T>
ForwardIterator<T>::ForwardIterator(Array<T>& f)
{
t=f;
}
template<class T>
bool ForwardIterator<T>::hasMoreElements()
{
}
template<class T>
int ForwardIterator<T>::nextElement()
{
}
void main()
{
Array<int>f(10);
cin>>f;
ForwardIterator<int>fi(f);
//while(fi.hasMoreElements())
//cout<<fi.nextElement();
}

这里的hasMoreElements()方法和nextElement();方法怎么写呢?请指教!!!

搜索更多相关主题的帖子: include public return 
2006-08-25 23:23
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 

你好像搞反了一些东西,应该array里面返回的类型都是iterator才对吧
例如vector<int> vec; vec.begin();返回的就是iterator;
而iterator应该是 iterator<vector<int> >这个样子;
楼住上面的做法好象已经将array跟iterator分开了


c++/C + 汇编 = 天下无敌
2006-08-26 08:47
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
能具体的指明吗?
Array<int>f(10);
cin>>f;
ForwardIterator<int>fi(f);
//while(fi.hasMoreElements())
//cout<<fi.nextElement();
这一段是书上的代码,就是要求自己写一个跌代器.....应该怎么个写法呢?
2006-08-26 10:19
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
可以看下MSDN上的啊,上面详细写了array的函数啊

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-26 11:15
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 
不过这样子写,没什么多大的意义了
template<class T>
class ForwardIterator
{
public:
ForwardIterator(Array<T>&);
bool hasMoreElements();
int nextElement();
private:
Array<T>* t;
int size;
int now;
};
template<class T>
ForwardIterator<T>::ForwardIterator(Array<T>& f)
{
size=f.get_size() ;
now=0;
t=f;
}
template<class T>
bool ForwardIterator<T>::hasMoreElements()
{
if(now<size)
return ture;
return false;
}
template<class T>
int ForwardIterator<T>::nextElement()
{
now++;
return t[now];
}

2006-08-26 12:18
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
我也搞不清楚,所以来请教大家!!!集思广益!!!
2006-08-26 13:05
快速回复:请教自己写一个跌代器
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016074 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved