`
zgcypjhf
  • 浏览: 5307 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

vector学习

    博客分类:
  • C++
 
阅读更多

 

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

输入 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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics