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

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

?? query.c

?? C++ PRIME書中的原代碼,看本書時可以學(xué)習(xí)的例子.
?? C
字號:
#include "Query.h"

const vector< location,allocator > *NotQuery::_all_locs = 0;
const vector< int,allocator >      *AndQuery::_max_col  = 0;

void
display_location( const vector<location,allocator>*ploc )
{
	cout << "\ndisplay_location vector: \n";

	vector<location, allocator>::const_iterator 
		iter = ploc->begin(), iter_end = ploc->end();

	for ( ; iter != iter_end; ++iter )  {
		cout << "\tfirst: " << ( *iter ).first;
		cout << "\tsecond: " << ( *iter ).second << endl;
	}
}

set<short,less<short>,allocator>*
Query::
_vec2set( const vector<location,allocator> *pvec )
{
	set<short,less<short>,allocator> 
		*ps = new set<short,less<short>,allocator>;

	vector<location,allocator>::const_iterator 
		iter = pvec->begin(), iter_end = pvec->end();
	
	for ( ; iter != iter_end; ++iter ) 
		ps->insert(( *iter ).first );

	return ps;
}

void
AndQuery::
eval()
{
    // add an exception here
    if ( ! _lop || ! _rop )
    {
	 cerr << "Internal error: AndQuery: \n"
	      << "no "
	      << ( _lop ? "right " : "left " )
	      << "operand -- bailing out... \n";
	 return;
    }

    _lop->eval();
    _rop->eval();

    vector< location, allocator >::const_iterator 
        riter = _rop->locations()->begin(),
        liter = _lop->locations()->begin(),
        riter_end = _rop->locations()->end(),
        liter_end = _lop->locations()->end();

    while ( liter != liter_end &&
	      riter != riter_end )
    {
	// while left line number is greater than right
	while ( (*liter).first > (*riter).first )
	{
		++riter;
		if ( riter == riter_end )
		   	{ 
				display_partial_solution(); 
				display_location( &_loc );
				return; 
		   	}
	}

	// while left line number is less than right
	while ( (*liter).first < (*riter).first )
	{
		if (    ((*liter).first == (*riter).first-1 ) &&
			((*riter).second == 0 ) &&
			((*liter).second == (*_max_col)[ (*liter).first ] ))
		{
			_loc.push_back( *liter );
			_loc.push_back( *riter );
			++riter;
			if ( riter == riter_end )
		   	{ 
				display_partial_solution(); 
				display_location( &_loc );
				return; 
		   	}
		}
		++liter;
		if ( liter == liter_end )
		   { 
			display_partial_solution(); 
			display_location( &_loc );
			return; 
		   }
        }

        // while both are on the same line
        while ( (*liter).first == (*riter).first )
	{
                if ( (*liter).second+1 == ((*riter).second) )
                {
                        _loc.push_back( *liter );
                        _loc.push_back( *riter );
                        ++riter;
                        ++liter;
                }
                else
                if ( (*liter).second <= (*riter).second )
                        ++liter;
                else ++riter;

                if ( liter == liter_end || riter == riter_end )
		   { 
			display_partial_solution(); 
			display_location( &_loc );
			return; 
		   }
        }
    }
}

void
OrQuery::
eval()
{
    // add an exception here
    if ( ! _lop || ! _rop )
    {
	 cerr << "Internal error: OrQuery: \n"
	      << "no "
	      << ( _lop ? "right " : "left " )
	      << "operand -- bailing out... \n";
	 return;
    }

    _lop->eval();
    _rop->eval();

    vector< location, allocator >::const_iterator 
        riter = _rop->locations()->begin(),
        liter = _lop->locations()->begin(),
        riter_end = _rop->locations()->end(),
        liter_end = _lop->locations()->end();

    merge( liter, liter_end, riter, riter_end,
	     inserter( _loc, _loc.begin() ),
	     less_than_pair() );

    display_partial_solution(); 

    display_location( &_loc );

}

void
NotQuery::
eval()
{
    // add an exception here
    if ( ! _op )
    {
         cerr << "Internal error: NotQuery: \n"
              << "no operand -- bailing out... \n";
         return;
    }
 
    _op->eval();

    vector< location, allocator >::const_iterator
            iter = _all_locs->begin(), 
            iter_end = _all_locs->end();

    set<short,less<short>,allocator> *ps = _vec2set( _op->locations() );
    for ( ; iter != iter_end; ++iter ) {
	  if ( ! ps->count( (*iter).first )) {
		 _loc.push_back( *iter );	
	  }
    }

    _solution = _vec2set( &_loc );
    display_partial_solution(); 

    display_location( &_loc );
}

void
NameQuery::
eval()
{
    display_partial_solution(); 

    display_location( &_loc );
}
	
void 
Query::
handle_tab( ostream &os, int tabcnt ) const
{
    while ( tabcnt-- )
	      os << '\t';
}

void 
Query::
display_solution( ostream &os, int tabcnt ) 
{
    for ( int tcnt = tabcnt; tcnt; --tcnt )
          os << '\t'; 

    const set< short, less<short>, allocator > *pset = solution();
    os << "( " << pset->size() << " ) : ";

    set< short, less<short>, allocator >::iterator iter = pset->begin();
    for ( int elem_cnt = 1; iter != pset->end(); 
                            ++iter, ++elem_cnt )
    {
          if ( !( elem_cnt % 10 )) {
               os << endl;      
               elem_cnt = 1;    
               for ( int tcnt = tabcnt; tcnt; --tcnt )
                     os << '\t'; 
          }     
        
          os << *iter+1 << ' ';
    }

    os << endl;
}

Query*
NotQuery::
clone() const
{
        return new NotQuery( *this );
}

Query*
AndQuery::
clone() const
{
        return new AndQuery( *this );
}

Query*
OrQuery::
clone() const
{
        return new OrQuery( *this );
}

void
Query::
print_lparen( short cnt, ostream &os ) const
{
    while ( cnt-- != 0 ) 
            os << "(";

    os << ' ';
}

void
Query::
print_rparen( short cnt, ostream &os ) const
{
    os << ' ';
    while ( cnt-- != 0 ) 
            os << ")";
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文字幕一区| 精品免费国产一区二区三区四区| 国产精品国产三级国产普通话蜜臀| 国产一区三区三区| 中文字幕欧美三区| 99这里只有久久精品视频| 亚洲免费观看高清完整版在线| 91毛片在线观看| 亚洲丶国产丶欧美一区二区三区| 在线视频国内一区二区| 午夜一区二区三区在线观看| 91精品国产综合久久精品图片 | 欧美日韩美少妇| 免费在线一区观看| 国产视频一区二区三区在线观看| av电影天堂一区二区在线 | 欧美日韩在线直播| 麻豆成人综合网| 国产午夜精品一区二区三区四区| 99久久久国产精品免费蜜臀| 亚洲一区二区三区四区在线免费观看 | 91视频观看视频| 日韩国产在线观看| 日本一区免费视频| 欧美日韩一区三区| 高清在线观看日韩| 亚洲自拍偷拍欧美| 精品裸体舞一区二区三区| 成人国产精品免费观看| 亚洲成人免费在线观看| 国产日韩成人精品| 欧美亚洲一区二区在线| 国产在线观看一区二区| 一区二区高清免费观看影视大全 | 激情综合色播激情啊| 中文无字幕一区二区三区| 欧美色综合天天久久综合精品| 久草这里只有精品视频| 亚洲乱码国产乱码精品精可以看| 欧美一区二区三区播放老司机| 国产激情视频一区二区在线观看 | 韩国一区二区三区| 国产色爱av资源综合区| 日本丶国产丶欧美色综合| 国模一区二区三区白浆| 亚洲国产日产av| 中文字幕亚洲在| 久久婷婷国产综合精品青草| 欧美熟乱第一页| 成人av网址在线观看| 久久99精品国产麻豆婷婷| 亚洲国产精品久久久久秋霞影院| 国产欧美日韩综合| 日韩精品中文字幕在线一区| 欧美亚洲高清一区| 91丨porny丨户外露出| 国产999精品久久| 狠狠久久亚洲欧美| 日本人妖一区二区| 亚洲国产精品视频| 亚洲精品国产第一综合99久久| 久久久另类综合| 日韩精品一区二区三区视频 | 欧美成人a视频| 在线不卡欧美精品一区二区三区| 91网站最新网址| 成人app下载| 风间由美中文字幕在线看视频国产欧美| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲va欧美va天堂v国产综合| 洋洋成人永久网站入口| 亚洲欧美电影院| 亚洲精品国产无天堂网2021| 亚洲欧洲美洲综合色网| 国产精品久久久久久久久免费相片 | 日韩av在线播放中文字幕| 亚洲成人免费在线观看| 亚洲成人av在线电影| 亚洲国产日韩a在线播放性色| 亚洲女同女同女同女同女同69| 中文字幕一区二区三区不卡在线 | 国产日韩高清在线| 国产欧美日韩视频一区二区| 久久久久久**毛片大全| 久久久99精品免费观看不卡| 国产欧美一区视频| 国产三区在线成人av| 国产精品视频yy9299一区| 亚洲色图制服诱惑| 亚洲最新视频在线观看| 日韩专区一卡二卡| 精品一区二区三区在线播放视频| 国产一区二区三区在线观看免费视频| 国内精品视频一区二区三区八戒| 久久国产视频网| 福利视频网站一区二区三区| www.日韩av| 欧美人牲a欧美精品| 精品国产凹凸成av人导航| 精品国产免费视频| 国产精品国产三级国产有无不卡 | 久久久国产精品不卡| 欧美国产精品久久| 亚洲欧洲色图综合| 午夜久久久久久久久久一区二区| 老司机精品视频线观看86| 国产成人午夜片在线观看高清观看| av亚洲产国偷v产偷v自拍| 精品视频在线免费看| 久久久午夜精品理论片中文字幕| 国产精品久久久久久久久免费桃花 | 日本美女一区二区三区视频| 国产在线视频精品一区| 91麻豆福利精品推荐| 欧美一区二区三区视频| 国产情人综合久久777777| 一区二区三区在线高清| 久久国产精品区| 一本色道久久综合亚洲91| 欧美一区二区成人| 一区视频在线播放| 美女mm1313爽爽久久久蜜臀| av亚洲精华国产精华| 日韩视频免费观看高清完整版在线观看| 中文子幕无线码一区tr| 亚洲一区二区av在线| 国产成人免费xxxxxxxx| 欧美剧情片在线观看| 亚洲欧洲另类国产综合| 久久精品国产亚洲一区二区三区| 色综合久久88色综合天天 | 9191成人精品久久| 欧美激情综合在线| 免费一级欧美片在线观看| 91亚洲精品久久久蜜桃网站| 久久日韩精品一区二区五区| 亚洲电影一区二区| 成人av免费在线观看| 精品久久人人做人人爽| 天天色天天爱天天射综合| 不卡av电影在线播放| 精品av久久707| 天堂成人免费av电影一区| 99热99精品| 国产欧美日韩一区二区三区在线观看| 日韩精品1区2区3区| 欧美在线免费播放| 1区2区3区国产精品| 国产精品亚洲人在线观看| 91精品国产美女浴室洗澡无遮挡| 亚洲综合成人网| 99精品黄色片免费大全| 国产亚洲综合色| 国产精品自拍网站| 精品久久久久久久久久久久包黑料| 亚洲电影在线播放| 在线观看av一区二区| 亚洲欧美激情小说另类| 99麻豆久久久国产精品免费| 国产精品丝袜在线| 成人激情开心网| 欧美韩国日本不卡| 成人av在线资源网| 欧美国产在线观看| 成人小视频免费观看| 国产精品美女视频| 99re热这里只有精品免费视频| 国产清纯在线一区二区www| 国产乱子伦一区二区三区国色天香| 337p粉嫩大胆噜噜噜噜噜91av| 久久国产综合精品| 久久精品亚洲麻豆av一区二区| 精品一区在线看| 国产亚洲一二三区| 粉嫩一区二区三区在线看| 欧美国产日产图区| 色综合天天综合网天天狠天天 | 久久久久国产免费免费| 国产专区欧美精品| 国产欧美一区二区三区鸳鸯浴| 成人永久aaa| 亚洲视频在线一区| 91福利精品视频| 婷婷开心激情综合| 久久这里只精品最新地址| 国产精品系列在线播放| 国产精品美女视频| 精品视频1区2区| 狠狠色综合色综合网络| 欧美国产精品久久| 欧美天堂一区二区三区| 免费的国产精品| 国产人成亚洲第一网站在线播放| 91亚洲大成网污www| 天堂久久一区二区三区| 精品欧美黑人一区二区三区| 成a人片亚洲日本久久| 亚洲国产精品嫩草影院| 精品国产青草久久久久福利| 91麻豆免费看|