vector学习

 

这是我第一篇博客日志,直接切入主题。
题目:用标准输入方式输入一系列字符串, 记录出现字符串出现最多次数的信息。
例如

输入 how, now now brow brow row now
输出 now occurs 3 次
开始想用数组存储字符串,但是数组的大小不能动态增长,想到标准库vector类, 可以很好解决这个问题,不多说了,代码如下:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()

{

        string str;
        vector<string> letter;                     //存储输入的字符串
        vector<int> occur;                          //存储字符串出现的次数
        vector<int>::size_type max, k;

        while (cin  >> str) {

               vector<string>::size_type iter;
               for ( iter = 0;  iter != letter.size();  ++iter) {
                         if(str == letter[iter])   //该字符已出现
                                  break;
                         else
                                  continue;
              }

              // 是新字符
              if (iter == letter.size()) {
                   letter.push_back(str);  //存储新字符
                   occur.push_back(1) ;    //存储出现次数为1
              }
               
               // 已出现的字符
              else

                    ++occur[iter];              // 出现次数加1      

        }

        max = 0;
	
	for(k = 1; k != occur.size(); k++) {
		    if(occur[max] < occur[k])
				max = k;
	}	
	
	cout<<letter[max]<<" occurs "<<occur[max]<<" times "<<endl; 

	return 0;
}
这样就解决了问题


              

 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值