C++ Primer复习和学习笔记 第六章 语句
2015-01-01 11:06
316 查看
/* 编写一个小程序,从标准输入读入一系列 string 对象,寻找连续重复出现的单词。程序应该找出满足以下条件的 单词的输入位置:该单词的后面紧跟着再次出现自己本身。跟踪重复次数最多的单词及其重复次数。输出重复次 数的最大值,若没有单词重复则输出说明信息。例如,如果输入是: how, now now now brown cow cow 则输出应表明“now”这个单词出现了三次。 */ #include "iostream"//本程序使用栈实现具体的功能 关键是vs.push_back() vs.pop_back() #include "vector" #include "string" using namespace std; int main() { vector<string> vs; string str; while (cin>>str) { vs.push_back(str); } int num_new=1; int num_old=0; string str_old; string str_new; vector<string> vs_heap; vector<string>::iterator vs_heap_head=vs.begin(); for (vector<string>::iterator iter=vs.begin();iter!=vs.end();++iter) { if (vs_heap.size()==0) { vs_heap.push_back(*iter); } else//vs_heap.size()!=0 { if (vs_heap[vs_heap.size()-1]==*iter) { vs_heap.push_back(*iter); ++num_new; str_new=*iter; } else//vs_heap[vs_heap.size()-1]!=*iter { while (vs_heap.size()!=0) { vs_heap.pop_back(); } num_new=1; vs_heap.push_back(*iter); } } if (num_new>num_old) { num_old=num_new; str_old=str_new; } } if (num_old==1) { cout<<"没有找到相应的重复的元素!"<<endl; } else//num_old!= 1 { cout<<"重复最多的字符串是"<<str_old<<"--------"<<"重复的次数是"<<num_old<<endl; } return 0; }
相关文章推荐
- C++ Primer复习和学习笔记 第五章 表达式
- [C++ primer 学习笔记][05]表达式和语句
- C++ Primer复习和学习笔记 第十三章 复制控制
- C++Primer学习笔记第六章(6/18)语句
- c++ primer 学习笔记-第六章
- C++ Primer复习和学习笔记 第十七章 异常处理
- C++ Primer 学习笔记(五)——语句
- C++ Primer复习和学习笔记 第十四章 重载操作符与转换
- C++ Primer复习和学习笔记 第十章 关联容器
- C++ Primer复习和学习笔记 第八章 标准IO库
- C++ Primer 学习笔记10 语句 (空语句、if语句、switch语句、for语句、dowhile语句、break语句、goto语句、continue语句、try块和异常处理)
- C++ Primer复习和学习笔记 第十一章 泛型算法
- C++ Primer复习和学习笔记 第四章 数组和指针
- C++ Primer复习和学习笔记 第一章 快速入门
- C++ Primer复习和学习笔记 第十五章 面向对象编程
- C++ Primer复习和学习笔记 第三章 标准库类型
- Java学习笔记―第六章 流程控制语句
- 2012/1/14 《C++ Primer Plus》第六章:分支语句和逻辑操作符 学习笔记
- C++ Primer复习和学习笔记 第十八章
- C++ Primer复习和学习笔记 第十六章 模板与泛型编程