VC++ 输入流迭代器

输入一些单词,中间使用空格分隔,最后统计每个单词出现的次数。

#include "stdafx.h"
#include <iostream>
#include <string>
#include <tuple>
#include <iomanip>
#include <array>
#include <map>
#include <functional>


using std::cin;
using std::cout;
using std::endl;
using std::tuple;
using std::string;
using std::setw;
using std::get;
using std::pair;
using std::map;


int main(int argc,_TCHAR* argv[])
{
	std::map<string,int> words;
	cout<<"Enter some text and press Enter followed by Ctrl+Z then Enter to end:"
		<<endl<<endl;


	std::istream_iterator<string> begin(cin); //Stream  iterator
	std::istream_iterator<string> end;

	while(begin!=end)		//Iterate over words in the stream
		words[*begin++]++;	//Increment and store a word count

	cout<<endl<<"Here a the world counts for the text you entered:"<<endl;
	const int wordsPerLine(4);

	int wordCount(0);

	cout<<std::setiosflags(std::ios::left);
	for(auto& word:words)
	{
		cout<<std::setw(15)<<word.first<<" "<<std::setw(5)<<word.second;
		if(++wordCount % wordsPerLine ==0) cout<<endl;

	}
	cout<<endl;


	return 0;
}

运行结果如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值