亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? classes.cpp

?? c編譯器詞法分析程序源碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號(hào):
/**************************************************
 * Essential C++ -- Stanley Lippman
 * Addison-Wesley 
 * ISBN 0-201-48518-4
 * homepage: www.objectwrite.com
 * email: slippman@objectwrite.com
 *************************************************/

#include <map>
#include <string>
#include <vector>
#include <utility>
#include <iostream>
#include <algorithm>
using namespace std;

// various test programs
extern void prog1();
extern void prog2();
extern void prog3();

int main()
{
	// prog1();
	// prog2();
	prog3();

	return 0; // quiets vc++
}

class num_sequence;
ostream& operator<<( ostream &os, const num_sequence &ns );

class num_sequence {
public:
	typedef vector<unsigned int>::iterator iterator;

    virtual ~num_sequence(){};
	virtual num_sequence *clone() const = 0;
			 
	virtual unsigned int elem( int pos ) const = 0;
	virtual bool         is_elem(  unsigned int ) const=0;
	virtual int          pos_elem( unsigned int ) const=0;

    virtual const char*  what_am_i() const = 0;
	static  int          max_elems(){ return _max_elems; }
	virtual ostream&     print( ostream &os = cout ) const = 0;
	
	virtual bool operator ==( const num_sequence& ) const=0;
    virtual bool operator !=( const num_sequence& ) const=0;
	
	// to work, need to remove all pure virtual functions
    // virtual num_sequence operator+( const num_sequence& ) const=0;

	virtual iterator begin() const = 0;
	virtual iterator end() const = 0;

	virtual int length()  const = 0;
    virtual int beg_pos() const = 0; 

	virtual void set_position( int pos ) = 0;
	virtual void set_length( int pos ) = 0;

	virtual	const vector<unsigned int>* sequence() const=0;
  
protected:
	// static const int    _max_elems = 1024;	
	// for compilers not supporting const static
	enum { _max_elems = 1024 };

    virtual void gen_elems( int pos ) const = 0;
	bool check_integrity( int pos, int size ) const; 
};

ostream& operator<<( ostream &os, const num_sequence &ns )
{  
    return ns.print( os );
}

class Fibonacci : public num_sequence {
public:
   Fibonacci( int beg_pos = 1, int len = 1 )
   {  set_position( beg_pos ); set_length( len ); }

   virtual num_sequence *clone() const 
		 { return new Fibonacci( *this ); }
		
   virtual unsigned int elem( int pos ) const;
   virtual bool        is_elem(  unsigned int elem ) const;
   virtual int         pos_elem( unsigned int elem ) const;

   virtual const char* what_am_i() const { return "Fibonacci"; }
   virtual ostream&    print( ostream &os = cout ) const; 

   virtual bool operator==( const num_sequence &rhs ) const;
   virtual bool operator!=( const num_sequence &rhs ) const; 

   virtual int length()  const { return _length;  }
   virtual int beg_pos() const { return _beg_pos; }

   virtual void set_position( int pos );
   virtual void set_length( int pos );

   virtual iterator begin() const 
		 { return _elems.begin()+_beg_pos-1; }

   virtual iterator end() const 
		 { return _elems.begin() + _beg_pos + _length; }	 

   virtual const vector<unsigned int>* 
	     sequence() const { return & _elems; }

protected:
   virtual void gen_elems( int pos ) const;
   static vector< unsigned int > _elems;
   
   int _length; 	
   int _beg_pos; 

private:
	int _calc_pos( unsigned int elem ) const;
};

class Pell : public num_sequence {
public:
   Pell( int beg_pos = 1, int len = 1 )
   {  set_position( beg_pos ); set_length( len ); }

   virtual num_sequence *clone() const 
		 { return new Pell( *this ); }
		
   virtual unsigned int elem( int pos ) const;
   virtual bool is_elem(  unsigned int elem ) const;
   virtual int pos_elem( unsigned int elem ) const;

   virtual const char* what_am_i() const { return "Pell"; }
   virtual ostream&    print( ostream &os = cout ) const; 

   virtual int length()  const { return _length;  }
   virtual int beg_pos() const { return _beg_pos; }

   virtual void set_position( int pos );
   virtual void set_length( int pos );

   virtual bool operator==( const num_sequence &rhs ) const;
   virtual bool operator!=( const num_sequence &rhs ) const; 

   virtual iterator begin() const 
		 { return _elems.begin()+_beg_pos-1; }

   virtual iterator end() const 
		 { return _elems.begin() + _beg_pos + _length; }

   virtual const vector<unsigned int>* 
	     sequence() const { return & _elems; }

protected:
   virtual void gen_elems( int pos ) const;
   static vector< unsigned int > _elems;
   
   int _length; 	
   int _beg_pos; 

private:
	int _calc_pos( unsigned int elem ) const;
};

class Lucas : public num_sequence {
public:
   Lucas( int beg_pos = 1, int len = 1 )
   {  set_position( beg_pos ); set_length( len ); }

   virtual num_sequence *clone() const 
		 { return new Lucas( *this ); }
		
   virtual unsigned int elem( int pos ) const;
   virtual bool        is_elem(  unsigned int elem ) const;
   virtual int         pos_elem( unsigned int elem ) const;

   virtual const char* what_am_i() const { return "Lucas"; }
   virtual ostream&    print( ostream &os = cout ) const; 

   virtual int length()  const { return _length;  }
   virtual int beg_pos() const { return _beg_pos; }

   virtual void set_position( int pos );
   virtual void set_length( int pos );

   virtual bool operator==( const num_sequence &rhs ) const;
   virtual bool operator!=( const num_sequence &rhs ) const; 

   virtual iterator begin() const 
		 { return _elems.begin()+_beg_pos-1; }

   virtual iterator end() const 
		 { return _elems.begin() + _beg_pos + _length; }

   virtual const vector<unsigned int>* 
	     sequence() const { return & _elems; }

protected:
   virtual void gen_elems( int pos ) const;
   static vector< unsigned int > _elems;
   	 
   int _length; 	
   int _beg_pos; 

private:
	int _calc_pos( unsigned int elem ) const;
};

class Triangular : public num_sequence {
public:
   Triangular( int beg_pos = 1, int len = 1 )
   {  set_position( beg_pos ); set_length( len ); }

   virtual num_sequence *clone() const 
		 { return new Triangular( *this ); }
		
   virtual unsigned int elem( int pos ) const;
   virtual bool is_elem(  unsigned int elem ) const;
   virtual int  pos_elem( unsigned int elem ) const;

   virtual const char* what_am_i() const { return "Triangular"; }
   virtual ostream&    print( ostream &os = cout ) const; 

   virtual int length()  const { return _length;  }
   virtual int beg_pos() const { return _beg_pos; }

   virtual void set_position( int pos );
   virtual void set_length( int pos );

   virtual bool operator==( const num_sequence &rhs ) const;
   virtual bool operator!=( const num_sequence &rhs ) const; 

   virtual iterator begin() const 
		 { return _elems.begin()+_beg_pos-1; }

   virtual iterator end() const 
		 { return _elems.begin() + _beg_pos + _length; }

   virtual const vector<unsigned int>* 
	     sequence() const { return & _elems; }

protected:
   virtual void gen_elems( int pos ) const;
   static vector< unsigned int > _elems;
   	
   int _length; 	
   int _beg_pos;
   
private:
	int _calc_pos( unsigned int elem ) const;
};

class Square : public num_sequence {
public:
   Square( int beg_pos = 1, int len = 1 )
   {  set_position( beg_pos ); set_length( len ); }

   virtual num_sequence *clone() const 
		 { return new Square( *this ); }
		
   virtual unsigned int elem( int pos ) const;
   virtual bool        is_elem(  unsigned int elem ) const;
   virtual int         pos_elem( unsigned int elem ) const;

   virtual const char* what_am_i() const { return "Square"; }
   virtual ostream&    print( ostream &os = cout ) const; 

   virtual int length()  const { return _length;  }
   virtual int beg_pos() const { return _beg_pos; }

   virtual void set_position( int pos );
   virtual void set_length( int pos );

   virtual bool operator==( const num_sequence &rhs ) const;
   virtual bool operator!=( const num_sequence &rhs ) const; 

   virtual iterator begin() const 
		 { return _elems.begin()+_beg_pos-1; }

   virtual iterator end() const 
		 { return _elems.begin() + _beg_pos + _length; }

   virtual const vector<unsigned int>* 
	     sequence() const { return & _elems; }

protected:
   virtual void gen_elems( int pos ) const;
   static vector< unsigned int > _elems;
   	
   int _length; 	
   int _beg_pos; 

private:
	int _calc_pos( unsigned int elem ) const;
};

class Pentagonal : public num_sequence {
public:
   Pentagonal( int beg_pos = 1, int len = 1 )
   {  set_position( beg_pos ); set_length( len ); }

   virtual num_sequence *clone() const 
		 { return new Pentagonal( *this ); }
		
   virtual unsigned int elem( int pos ) const;
   virtual bool        is_elem(  unsigned int elem ) const;
   virtual int         pos_elem( unsigned int elem ) const;

   virtual const char* what_am_i() const { return "Pentagonal"; }
   virtual ostream&    print( ostream &os = cout ) const; 

   virtual int length()  const { return _length;  }
   virtual int beg_pos() const { return _beg_pos; }

   virtual void set_position( int pos );
   virtual void set_length( int pos );

   virtual bool operator==( const num_sequence &rhs ) const;
   virtual bool operator!=( const num_sequence &rhs ) const; 

   virtual iterator begin() const 
		 { return _elems.begin()+_beg_pos-1; }

   virtual iterator end() const 
		 { return _elems.begin() + _beg_pos + _length; }

   virtual const vector<unsigned int>* 
	     sequence() const { return & _elems; }

protected:
   virtual void gen_elems( int pos ) const;
   static vector< unsigned int > _elems;
   	
   int _length; 	
   int _beg_pos; 

private:
	int _calc_pos( unsigned int elem ) const;
};

inline void 
display( ostream &os, const num_sequence &ns, 
		 int pos, int elem_val )
{
	os << "The element at position " << pos 
	   << " for the "
	   << ns.what_am_i() 
	   << " sequence is " << elem_val << endl;
}

inline void 
display( ostream &os, const num_sequence &ns, int pos )
{
	os << "The element at position " 
	   << pos            << " for the "
	   << ns.what_am_i() << " sequence is " 
	   << ns.elem( pos ) << endl;
}

// actual programs exercising the hierarchy
// normally would go in a program text file: .cpp

void prog1()
{
	const int pos = 8;

	Fibonacci fib;	
	display( cout, fib, pos );

	Pell pell;
	display( cout, pell, pos );

	Lucas lucas;
	display( cout, lucas, pos );

	Triangular trian;
	display( cout, trian, pos );
	
	Square square;
	display( cout, square, pos );

	Pentagonal penta;
    display( cout, penta, pos );

}

void prog2()
{
	Fibonacci  fib( 1, 8 );
	Pell       pell( 4, 6 );
	Lucas      lucas( 7, 10 );
	Triangular trian( 1, 12 );
	Square     square( 6, 6 );
	Pentagonal penta( 1, 8 );

	cout << "fib: " << fib << '\n'
	     << "pell: " << pell << '\n'
		 << "lucas: " << lucas << '\n'
		 << "trian: " << trian << '\n'
		 << "square: " << square << '\n'
		 << "penta: " << penta << endl;
};

void prog3()
{
	num_sequence *pns = 0;
	int elem_val = 0;
	const int pos = 8;
	const int find_pos = 14;

	int elem_values[] = { 377, 80782, 843, 105, 196, 287 }; 
	// for ( int ix = 0; ix < 6; ++ix ) // test all
	for ( int ix = 0; ix < 1; ++ix ) // test 1 at time
	{
		// for testing, just insure that we try
		// out each derived class instance ...

		switch( ix ) {
		case 0:
			pns = new Fibonacci( 1, 8 );
			break;
		case 1:
			delete pns;
			pns = new Pell( 1, 8 );
			break;
		case 2:
			delete pns;
			pns = new Lucas( 1, 8 );
			break;
		case 3:
			delete pns;
			pns = new Triangular( 1, 8 );
			break;
		case 4:
			delete pns;
			pns = new Square( 1, 8 );
			break;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产九色sp调教91| 国产午夜亚洲精品理论片色戒| 亚洲图片你懂的| 99国产欧美另类久久久精品| 亚洲色图一区二区| 欧洲一区二区三区在线| 一区二区高清在线| 9191精品国产综合久久久久久| 日韩福利视频网| 精品处破学生在线二十三| 成人激情小说网站| 亚洲狠狠爱一区二区三区| 555夜色666亚洲国产免| 久久99九九99精品| 国产精品久久久久久久久久免费看| 97精品久久久午夜一区二区三区| 一区二区三区成人在线视频| 欧美一区二区三区的| 国产·精品毛片| 亚洲午夜免费电影| 精品国产一区a| 95精品视频在线| 美女一区二区久久| 亚洲欧洲国产日韩| 69堂成人精品免费视频| 国产精品综合在线视频| 亚洲精品第1页| 久久亚洲春色中文字幕久久久| 91亚洲精品久久久蜜桃网站 | 日韩一级完整毛片| 粉嫩在线一区二区三区视频| 一区二区三区四区高清精品免费观看| 91精品在线一区二区| 不卡一区在线观看| 日韩va亚洲va欧美va久久| 中文在线一区二区| 欧美日韩不卡在线| 懂色av一区二区三区蜜臀| 亚洲地区一二三色| 欧美高清在线一区二区| 欧美色精品在线视频| 国产高清不卡一区二区| 午夜欧美大尺度福利影院在线看| 中文字幕免费不卡| 欧美一级在线视频| 欧美亚洲国产一区在线观看网站| 国产精品一级在线| 亚洲国产精品欧美一二99| 国产精品色在线| 日韩欧美专区在线| 欧美在线免费观看亚洲| 波多野结衣在线一区| 精品一区二区三区在线视频| 午夜精品福利一区二区三区av| 亚洲图片你懂的| 国产精品沙发午睡系列990531| 日韩精品一区二区三区swag | 日本视频一区二区三区| 中文字幕一区免费在线观看| 久久亚洲综合av| 欧美一区二区三区白人| 欧美猛男gaygay网站| 色婷婷精品久久二区二区蜜臂av | 国产呦萝稀缺另类资源| 午夜精品福利视频网站| 亚洲欧美日韩精品久久久久| 欧美激情一区三区| 久久综合九色欧美综合狠狠 | 欧美精品在线观看一区二区| 色综合色综合色综合 | 亚洲最色的网站| 日韩美女视频一区| 国产精品麻豆一区二区| 久久久99精品久久| 国产午夜亚洲精品理论片色戒 | 在线不卡中文字幕播放| 欧美做爰猛烈大尺度电影无法无天| 从欧美一区二区三区| 国产精品影视网| 国产乱色国产精品免费视频| 黄一区二区三区| 国产乱子伦视频一区二区三区 | 日韩一区欧美二区| 亚洲高清免费观看高清完整版在线观看 | 欧美午夜在线一二页| 欧美网站大全在线观看| 欧美日韩精品三区| 欧美精品久久久久久久多人混战 | 成人精品在线视频观看| av午夜精品一区二区三区| www.亚洲在线| 91国在线观看| 欧美精品一级二级三级| 91精品国产黑色紧身裤美女| 精品久久99ma| 久久久久久久久伊人| 国产精品色哟哟| 亚洲精品日韩一| 亚洲成人av资源| 国产一区二区三区av电影 | 经典三级视频一区| 丁香六月综合激情| 91黄视频在线| 欧美大片一区二区| 中文字幕精品三区| 夜夜精品视频一区二区| 日韩成人一区二区| 国产精品一区不卡| 91在线精品一区二区| 欧美少妇bbb| 精品国产乱码久久久久久浪潮| 国产午夜精品一区二区| 亚洲卡通欧美制服中文| 日韩av午夜在线观看| 国产精品一二二区| 色婷婷综合激情| 欧美成人一区二区三区片免费 | 成人免费高清视频| 欧美日韩国产一区二区三区地区| 日韩午夜av电影| 国产精品乱人伦| 日日夜夜精品免费视频| 丰满少妇久久久久久久| 欧美日韩成人在线| 国产精品免费视频观看| 香蕉成人伊视频在线观看| 国产高清精品网站| 欧美日韩一区二区三区免费看| 精品免费日韩av| 一区二区三区欧美日| 精品一区二区三区不卡| 欧美三级视频在线观看| 国产日产欧美精品一区二区三区| 亚洲成人免费观看| 成年人国产精品| 精品国产自在久精品国产| 一区二区三区在线免费观看| 国产精品一区二区x88av| 欧美色偷偷大香| 国产日韩v精品一区二区| 日韩黄色免费电影| 99国产一区二区三精品乱码| 久久综合国产精品| 日韩中文字幕亚洲一区二区va在线| av中文字幕亚洲| 欧美电影免费观看高清完整版在线| 亚洲欧美日韩在线播放| 国产成人免费视频| 欧美电影精品一区二区| 午夜a成v人精品| 在线亚洲人成电影网站色www| 国产农村妇女精品| 国产美女精品人人做人人爽| 欧美一区二区三区视频免费播放| 一区二区三区久久久| 99riav一区二区三区| 中文一区二区在线观看| 激情成人午夜视频| 欧美精品777| 丝袜a∨在线一区二区三区不卡| 成人激情免费视频| 国产精品污网站| www.欧美日韩| 中文天堂在线一区| 国产69精品久久久久毛片| 欧美激情一区二区三区蜜桃视频| 国产中文字幕一区| 久久久久久**毛片大全| 国产成人精品免费| 国产精品蜜臀av| 97精品超碰一区二区三区| 中文字幕在线免费不卡| 91在线国产福利| 亚洲精品高清在线| 欧美日韩精品一区二区| 丝袜诱惑亚洲看片| 日韩一区二区三区视频在线 | 麻豆精品在线视频| 日韩免费观看2025年上映的电影| 免费久久99精品国产| 26uuu成人网一区二区三区| 国产剧情在线观看一区二区| 国产精品美女久久久久久久久久久| 成人午夜电影久久影院| 亚洲欧美一区二区三区久本道91| 色悠悠久久综合| 视频一区二区不卡| 欧美大片顶级少妇| 成人18视频在线播放| 亚洲在线视频网站| 日韩免费观看高清完整版| 粉嫩av一区二区三区在线播放| 一区在线中文字幕| 欧美日韩国产成人在线免费| 久久精品国产色蜜蜜麻豆| 久久久精品国产免大香伊| 97久久人人超碰| 日本成人在线网站| 久久精品人人做人人爽人人| 色婷婷久久综合|