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

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

?? 12-2.cpp

?? Accelerated C++ 課后練習(xí)題 本人自己完成、可供參考
?? CPP
字號(hào):
#include<iostream>
#include<memory> 
#include<iterator>
#include<string>
#include<fstream>
using std::string;
using std::cout;
using std::endl;
using std::cin;
using std::allocator;
using std::_MAX;
using std::uninitialized_copy;
using std::uninitialized_fill;
using std::istream;
using std::ostream;
using std::ifstream;
using std::ofstream;

template <class T> class Vec
{
public:
	typedef T* iterator;
	typedef const T* const_iterator;
	typedef size_t size_type;
	typedef T value_type;

	Vec() { create(); }
	explicit Vec(size_type n,const T& t=T()) { create(n,t);}
	
	Vec(const Vec& v) { create(v.begin(),v.end()); }
	Vec& operator=(const Vec&);
	~Vec() { uncreate();}

	T& operator[](size_type i) { return data[i]; }
	const T& operator[](size_type i) const {return data[i];}

	void push_back(const T& t)
	{
		if(avail==limit)
			grow();
		unchecked_append(t);
	}

	iterator erase(iterator);
	void clear();

	size_type size() const {return avail-data;}

	iterator begin() { return data;}
	const_iterator begin() const { return data;}

	iterator end() { return avail;}
	const_iterator end() const { return avail; }
private:
	iterator data;		//first element in the Vec
	iterator avail;		//(one past) the last of element in the Vec
	iterator limit;		//(one past) the allocated menory

	//facilities for memory allocation
	allocator<T> alloc;	//object to handle memory allocation
	
	//allocation and initialize the underlying array
	void create();
	void create(size_type,const T&);
	void create(const_iterator, const_iterator);

	//destroy the element in the array and free the memory
	void uncreate();

	//support funcions for push_back
	void grow();
	void unchecked_append(const T&);

};

template<class T>
Vec<T>& Vec<T>::operator =(const Vec& rhs)
{
	//check for self-assignment
	if(&rhs!=this)
	{
		//free the array in the left-hand side
		uncreate();
		//copy elements from the right-hand to the left-hand side
		create(rhs.begin(),rhs.end());
	}
	return *this;
}
template <class T> void Vec<T>::create()
{
	data=avail=limit=0;
}
template <class T> void Vec<T>::create(size_type n, const T& val)
{
	data=alloc.allocate(n,0);
	limit=avail=data+n;
	uninitialized_fill(data,limit,val);
}
template <class T> 
void Vec<T>::create(const_iterator i,const_iterator j)
{
	data=alloc.allocate(j-i,0);
	limit=avail=uninitialized_copy(i,j,data);
}
template <class T> void Vec<T>::uncreate()
{
	if(data)
	{
		//destroy (in reverse orde) the elements that were constructed
		iterator it=avail;
		while(it!=data)
			alloc.destroy(--it);

		//return all the space that was allocated
		alloc.deallocate(data,limit-data);
	}
	//reset pointers to indicate that the Vec is empty again
	data=limit=avail=0;
}
template <class T> void Vec<T>::grow()
{
	//when growing, allocate twice as much space as currently in use
	size_type new_size=_MAX(2*(limit-data),ptrdiff_t(1));

	//allocate new space and copy existing elements to the new space
	iterator new_data=alloc.allocate(new_size,0);
	iterator new_avail=uninitialized_copy(data,avail,new_data);

	//return the old space
	uncreate();

	//reset pointers to point to the newly allocate space
	data=new_data;
	avail=new_avail;
	limit=data+new_size;
}
template <class T> void Vec<T>::unchecked_append(const T& val)
{
	alloc.construct(avail++,val);
}
template <class T> Vec<T>::iterator Vec<T>::erase(iterator i)
{
	std::copy(i+1,avail,i);
	--avail;
	return i;
}
template <class T> void Vec<T>::clear()
{
	uncreate();
}



class Str
{
	//input operator 
	 friend istream& operator>>(istream&, Str&);

public:
	Str& operator+=(const Str& s)
	{
		std::copy(s.data.begin(),s.data.end(),std::back_inserter(data));
		return *this;
	}

	typedef Vec<char>::size_type size_type;
	
	//default constructor ;create an empty Str
	Str(){}

	//create a Str containing  n copies c
	Str(size_type n,char c):data(n,c){}

	//create s Str from a null-teminated array of char
	Str(const char* cp)
	{
		std::copy(cp,cp+strlen(cp),std::back_inserter(data));
	}

	//create a Str from the rang denoted by iterators b and e
	template<class In> Str(In b,In e)
	{
		std::copy(b,e,std::back_inserter(data));
	}

	char& operator[](size_type i){return data[i];}
	const char& operator[](size_type i) const {return data[i];}

	size_type size() const{return data.size();}
	
	const char* c_str() const;
	const char* c_date() const;
	const char* copy(char*,size_type) const;
private:
	Vec<char> data;
};
const char* Str::copy(char* p,size_type n) const
{
	if(strlen(p)<n)
		throw "benefit!";
	else
	{
		std::copy(data.begin(),data.begin()+n,p);
		return p;
	}
}
const char* Str::c_str() const
{
	char* p=new char[size()];
	std::copy(data.begin(),data.end(),p);
	p[size()]=0;
	return p;
}
const char* Str::c_date() const
{
	char* p=new char[size()-1];
	std::copy(data.begin(),data.end(),p);
	return p;
}
ostream& operator<<(ostream& os, const Str& s)
{
	for(Str::size_type i=0;i<s.size();++i)
		os<<s[i];
	return os;
}

istream& operator>>(istream& is, Str& s)
{
	//obliterate existing value (s)
	s.data.clear();

	//read and discard leading whitespace
	char c;
	while(is.get(c)&&isspace(c))
		;//nothing to do, except testing the condition

	//if still something to read, do so until next whitespace charactor
	if(is)
	{
		do
			s.data.push_back(c);	//compile error! data is private
		while(is.get(c)&&!isspace(c));

		//if we read whitespace, then put it back on the stream
		if(is)
			is.unget();
	}
	return is;
}

Str operator+(const Str& s,const Str& t)
{
	Str r=s;
	r+=t;
	return r;
}

int main()
{
	Str ch="cheng";
	string s;
	ifstream infile(ch.c_str());
	std::getline(infile,s);
	cout<<s<<endl;

	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品亚洲专区| 日韩一区二区精品葵司在线| 国产日韩欧美一区二区三区乱码 | 日韩午夜激情av| 免费黄网站欧美| 久久综合成人精品亚洲另类欧美 | 欧美成人欧美edvon| 精品一区二区在线播放| 久久久久久电影| 91免费精品国自产拍在线不卡| 亚洲女爱视频在线| 91精品久久久久久蜜臀| 国产一区二区三区视频在线播放| 国产亚洲精品7777| 色拍拍在线精品视频8848| 天堂va蜜桃一区二区三区| 欧美电影免费提供在线观看| 国产不卡视频在线播放| 亚洲一区二区三区不卡国产欧美| 欧美精品精品一区| 国产激情91久久精品导航| 亚洲欧美日韩在线| 欧美不卡一区二区| 97aⅴ精品视频一二三区| 亚洲mv在线观看| 中文字幕巨乱亚洲| 欧美日韩久久不卡| 国产成人亚洲综合a∨婷婷 | 日本免费在线视频不卡一不卡二| 久久蜜臀精品av| 欧洲一区二区三区免费视频| 国产综合色产在线精品| 亚洲精品乱码久久久久久| 欧美一区二区三区的| 丁香天五香天堂综合| 午夜精品在线看| 日本一区二区视频在线| 欧美日韩美女一区二区| av不卡一区二区三区| 蜜桃精品视频在线| 一区二区三区在线免费播放| 日韩精品中文字幕一区二区三区| 91在线观看地址| 久久超碰97中文字幕| 亚洲一区国产视频| 中文字幕欧美国产| 欧美亚洲一区二区在线观看| 久久99日本精品| 日韩视频一区在线观看| 91在线观看免费视频| 精品一区二区日韩| 不卡的av网站| 经典三级一区二区| 日韩av一级片| 亚洲网友自拍偷拍| 国产精品污www在线观看| 精品国产一区二区三区av性色| 欧美三级欧美一级| 91官网在线观看| 99re热这里只有精品免费视频| 国产在线一区观看| 老司机免费视频一区二区三区| 亚洲成人中文在线| 亚洲激情中文1区| 亚洲男人的天堂在线aⅴ视频| 欧美激情在线看| 久久久久久久av麻豆果冻| 亚洲精品一线二线三线| 日韩女优制服丝袜电影| 欧美一区二区久久| 日韩欧美一级特黄在线播放| 777a∨成人精品桃花网| 欧美日韩中字一区| 欧美特级限制片免费在线观看| 一本一道波多野结衣一区二区 | 亚洲摸摸操操av| 国产精品灌醉下药二区| 国产精品视频看| 国产精品国产自产拍高清av王其| 欧美精品一区二区在线观看| 久久亚洲捆绑美女| 国产婷婷色一区二区三区四区| 国产欧美综合色| 国产丝袜欧美中文另类| 日本成人在线一区| 黑人精品欧美一区二区蜜桃| 韩国成人精品a∨在线观看| 国产在线一区观看| 丁香婷婷综合网| 94色蜜桃网一区二区三区| 色丁香久综合在线久综合在线观看 | 久久久国产精品麻豆| 久久久久国产一区二区三区四区 | 日韩丝袜美女视频| 欧美一级二级三级乱码| 久久亚洲影视婷婷| 国产精品沙发午睡系列990531| 中文字幕一区二区日韩精品绯色| 亚洲免费在线看| 日韩成人dvd| 国产一区二区三区av电影| 国产精品亚洲专一区二区三区| 粉嫩av一区二区三区在线播放| 97精品久久久久中文字幕| 欧美亚洲精品一区| 日韩写真欧美这视频| 久久久久久久电影| 亚洲乱码日产精品bd| 免费在线成人网| 成人黄页在线观看| 在线免费一区三区| 欧美成人精品福利| 亚洲欧洲日韩av| 日本欧美一区二区三区| 成人黄色一级视频| 6080日韩午夜伦伦午夜伦| 国产日韩欧美精品在线| 亚洲一区二区三区四区五区黄 | 日韩理论在线观看| 首页欧美精品中文字幕| 成人福利视频在线| 欧美电影在哪看比较好| 国产精品乱码一区二区三区软件 | 久久国产精品免费| 国产精品系列在线播放| 亚洲丝袜美腿综合| 国产精品成人午夜| 精彩视频一区二区| 欧美伊人精品成人久久综合97 | 激情综合网最新| 亚洲电影在线免费观看| 亚洲国产综合人成综合网站| 国产呦萝稀缺另类资源| 91精品办公室少妇高潮对白| 精品久久久久久综合日本欧美| 亚洲精品午夜久久久| 国产久卡久卡久卡久卡视频精品| 欧美伊人久久大香线蕉综合69 | 欧美精三区欧美精三区| 国产精品视频第一区| 久久国产尿小便嘘嘘尿| 精品视频一区 二区 三区| 国产无一区二区| 美女免费视频一区二区| 欧美视频一区在线观看| 中文字幕一区二区三区四区| 国内精品自线一区二区三区视频| 欧美日韩日本视频| 亚洲男人的天堂在线aⅴ视频| 国产a久久麻豆| 久久伊人蜜桃av一区二区| 三级不卡在线观看| 欧美三级韩国三级日本三斤| 日韩 欧美一区二区三区| 欧美影院精品一区| 亚洲精品日产精品乱码不卡| 成人aaaa免费全部观看| 久久久久亚洲蜜桃| 激情小说亚洲一区| 欧美成人一区二区三区在线观看 | 专区另类欧美日韩| 成人在线综合网| 中文字幕成人在线观看| 国产成人高清在线| 久久久久久久久久久久久久久99| 九九九精品视频| 精品福利在线导航| 国产一区欧美二区| 久久亚洲春色中文字幕久久久| 麻豆成人av在线| 欧美xxxxxxxxx| 国产综合久久久久久久久久久久| 精品欧美黑人一区二区三区| 毛片不卡一区二区| 精品国内二区三区| 国产一区不卡精品| 亚洲国产高清在线| 91在线精品秘密一区二区| 亚洲九九爱视频| 欧美日韩国产另类不卡| 日韩国产成人精品| 26uuu欧美| 成人午夜视频网站| 亚洲欧美日韩国产成人精品影院| 91色综合久久久久婷婷| 亚洲一区二区三区不卡国产欧美| 欧美精品三级在线观看| 蜜芽一区二区三区| 久久久久国色av免费看影院| 成人激情动漫在线观看| 洋洋成人永久网站入口| 在线成人高清不卡| 国产精品中文字幕日韩精品| 欧美国产成人精品| 欧美亚洲精品一区| 国产一区中文字幕| 亚洲乱码国产乱码精品精98午夜 | 亚洲va欧美va天堂v国产综合| 日韩欧美的一区二区| 成人动漫在线一区|