c10-

来自「C++面向对象课程设计课件」· 代码 · 共 52 行

TXT
52
字号
class IntStack
{
	enum {ssize=100};
	int  stack[ssize];
	int  top;
public:
	IntStack():top(0)	{}
	void push(int i) 	{	stack[top++]=i;		}
	int  pos()		{	return stack[--top];	}

	class  iterator;
	friend iterator;
	class  iterator 
	{
		IntStack&       s;
		int		index;
	public:
		iterator(Intstack& is):s(is),index(0){}
		iterator(Intstack& is,bool):s(is),index(s.top){}
		int	current() const {	return s.stack[index];  }
		int	operator++() 	{	return s.stack[++index];}
		int	operator++(int) {	return s.stack[index++];}
		iterator&  operator+=(int amount) {	index+=amount;	return *this; }
		bool 	operator==(const iterator& rv) cosnt {	return index==rv.index;}
		bool	operator!=(const iterator& rv) cosnt {	return index!=rv.index;}
	};
	iterator begin() 	{	return iterator(*this);	}
	iterator end()		{	return iterator(*this); }
};


int 	main()
{
	IntStack is;
	for (int i=0;i<20;i++)
		is.push(i);
	IntStack::iterator it=is.begin();
	while (it !=is.end())
	{
		//do somthing
		++it;
	}
	
	IntStack::iterator start=is.begin(),end=is.begin();
	start+=5;
	end+=15;
	while( start!=end){
	{
		//do something
		start++;
	}
}	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?