终止符EOF在windows平台中如何输入

来自:http://zhidao.baidu.com/question/293245134.html?fr=qrl&cid=93&index=3

在windows平台,一般模拟eof的输入是在一个新行的开头输入ctrl + z就行了
在unix环境下,是在一个新行的开始出输入ctrl + D就可以了
 
附上:
//三句话实现从屏幕中输入单词、按字母顺序排序,剔除重复单词后、输出到屏幕上。
	vector<string> v1((istream_iterator<string> (cin) ),(istream_iterator<string> () ));
	sort(v1.begin(),v1.end());
//	cout<<"\n out: \n";
	unique_copy(v1.begin(),v1.end(),ostream_iterator<string>(cout," "));

解释来自:
http://blog.csdn.net/sandy_zc_1/article/details/6529304
 
STL实现就这么一点,恰三行代码。
来稍微解释下:
第一句定义了一个vector v1,并且在构造函数中传入两个输入流迭代器,这两个迭代器构成一个区间,表示输入的所有单词,直到输入终止(EOF)。这样v1就在创建的时候里面填满了输入的各个单词。

第二句,使用sort对这个vector里面的元素进行排序。是的,不需要你写复杂的字符串比较函数,string内部带有operator < 的定义。而sort,只需要一个小于号即可运作。排序完毕后,所有单词就按照字母顺序从小到大整齐排列了。

第三句,使用unique_copy来将v1中的数据拷贝到目标区间。unique_copycopy的不同之处就在于,它可以将连续的n个相同元素剔除掉其中的n-1个,只留下一个元素,从而实现unique的功能。这次拷贝的目标区间的起始又是流迭代器——这次是输出流迭代器,它将算法给它的数据输出到cout中,于是就显示在屏幕上了。

很神奇,很强大吧。我觉得用这个例子来作为迭代器配接器介绍的结尾,挺好的。


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值