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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? classes.cpp

?? c編譯器詞法分析程序源碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/**************************************************
 * 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品啪在线观看国产60岁| 92精品国产成人观看免费| 91香蕉视频污| 中文字幕的久久| 国产嫩草影院久久久久| 麻豆高清免费国产一区| 5566中文字幕一区二区电影| 日韩伦理免费电影| 国产精品麻豆99久久久久久| 欧美大胆一级视频| 亚洲精品一区二区三区影院| 丝袜美腿成人在线| 久久精品国产77777蜜臀| 欧美巨大另类极品videosbest | 成人高清视频在线| 成人毛片在线观看| 91婷婷韩国欧美一区二区| 欧洲亚洲国产日韩| 91精品久久久久久久久99蜜臂| 亚洲精品视频在线观看免费| 99精品视频一区二区三区| 久久奇米777| 精品国产91九色蝌蚪| 久久精品国产99| 国产精品久久久久久妇女6080| 成人综合日日夜夜| 欧洲一区二区三区在线| 免费高清不卡av| 91免费版在线| 青青草视频一区| 国产农村妇女毛片精品久久麻豆 | 亚洲综合久久久| 久久精品av麻豆的观看方式| 91丨九色丨蝌蚪富婆spa| 日韩电影一区二区三区| 国产精品卡一卡二卡三| 国产另类ts人妖一区二区| 亚洲精选在线视频| 99视频一区二区三区| 精品国产一区二区三区久久久蜜月| 亚洲乱码国产乱码精品精可以看 | 国产乱淫av一区二区三区 | 国产精品无遮挡| 精品奇米国产一区二区三区| 91黄色免费版| 成人精品gif动图一区| 国产在线国偷精品免费看| 日韩精品乱码av一区二区| 一区二区三区四区在线播放| 久久久精品国产免费观看同学| 欧美精品丝袜久久久中文字幕| 成人一级片网址| 国产成人av一区二区三区在线观看| 7777精品伊人久久久大香线蕉 | 色妞www精品视频| 国产精品久久久久影院色老大| 国产一区二区在线免费观看| 日韩精品一二三| 欧美日韩国产中文| 欧美日本在线播放| 麻豆精品视频在线观看视频| 午夜免费欧美电影| 日韩免费视频一区二区| 欧美成人精品1314www| 99精品视频一区| 色国产精品一区在线观看| 97精品久久久午夜一区二区三区 | 欧美日韩情趣电影| 欧美精品少妇一区二区三区 | 精品在线观看视频| www.亚洲在线| 91精品国产综合久久久久久久久久| 精品国产成人在线影院| 亚洲一区二区在线免费观看视频| 毛片一区二区三区| 91在线播放网址| 欧美成人video| 亚洲精品成人少妇| 久久久久久黄色| 一区二区三区在线影院| 久久国产麻豆精品| 午夜精品视频在线观看| 成人一区在线观看| 亚洲精品一区二区三区福利| 欧美日韩国产123区| 色噜噜久久综合| 色综合久久综合| 久久九九99视频| 免费欧美高清视频| 日本美女一区二区| 精品视频全国免费看| 中文字幕在线观看不卡| 久久久久久久网| 久久精品一区八戒影视| 欧美激情一区二区在线| 日韩伦理免费电影| 成人欧美一区二区三区1314| 色天天综合色天天久久| 亚洲日本中文字幕区| 亚洲福利视频一区| 免费一级片91| 色婷婷久久久综合中文字幕| 精品欧美久久久| 精品嫩草影院久久| 欧美在线观看一二区| 91麻豆精品国产91久久久资源速度| 亚洲精选一二三| 亚洲人成精品久久久久久| 精品久久国产老人久久综合| 337p日本欧洲亚洲大胆精品| 久久午夜羞羞影院免费观看| 777久久久精品| 国产日韩欧美精品综合| 91精品国产高清一区二区三区| av在线综合网| 欧美电影免费观看高清完整版在线 | 亚洲另类色综合网站| 欧美日韩国产三级| 欧美成人aa大片| 美日韩一区二区| 欧洲国产伦久久久久久久| 日韩你懂的在线播放| 国产精品久久久久aaaa| 99riav一区二区三区| 日韩 欧美一区二区三区| 欧美精品久久99| 亚洲精品成a人| 色噜噜狠狠色综合欧洲selulu | 成人免费高清在线| 人人精品人人爱| 亚洲人一二三区| 国产亚洲欧美日韩在线一区| 欧美日韩国产影片| 日韩码欧中文字| 欧美不卡一区二区| 日韩欧美一区二区在线视频| 一区二区三区中文在线| 欧美探花视频资源| 本田岬高潮一区二区三区| 热久久一区二区| 国产欧美精品在线观看| 欧美视频中文字幕| 91亚洲精品久久久蜜桃| 成人动漫av在线| 风间由美性色一区二区三区| 国产91精品免费| 国产精品一区一区| 国产区在线观看成人精品| 久久久久久97三级| 国产亚洲制服色| 91黄色免费观看| 欧美性大战久久| 制服.丝袜.亚洲.中文.综合| 日本欧美肥老太交大片| 久久av资源网| 亚洲美女精品一区| 日韩一区二区在线观看视频| 欧美一级理论性理论a| 国产精品一区免费视频| 不卡电影一区二区三区| 在线视频国内自拍亚洲视频| 欧美日韩成人在线| bt7086福利一区国产| 日本欧美一区二区| 国内外成人在线视频| av一区二区三区黑人| 欧美日韩久久久| 97se狠狠狠综合亚洲狠狠| 美女视频网站久久| 成人免费高清视频在线观看| 欧美性videosxxxxx| 国产白丝精品91爽爽久久| 色综合久久久久综合| 欧美电影免费观看完整版| 日韩一区有码在线| 久久69国产一区二区蜜臀| 99r精品视频| 一本大道久久a久久精品综合| 欧美高清www午色夜在线视频| 国产日韩精品一区| 日韩电影免费一区| 色噜噜久久综合| 韩国精品主播一区二区在线观看 | 亚洲综合一区在线| 国产精品久线观看视频| 寂寞少妇一区二区三区| 欧美高清激情brazzers| 欧美一区二区三区在线| 亚洲精品五月天| 91免费小视频| 亚洲人成伊人成综合网小说| 韩国理伦片一区二区三区在线播放| 欧美视频在线一区| 欧美亚洲禁片免费| 一区二区三区蜜桃| 亚洲无人区一区| 在线免费一区三区| 欧美va亚洲va在线观看蝴蝶网| 午夜视黄欧洲亚洲| 欧美日韩激情一区二区三区|