p164~p170:

大致内容

迭代语句

1、while语句。

2、传统for。

3、范围for。
两个注意点是:1- 通常使用auto来确保类型相容,2- 如果需要修改元素则需要使用&符(还可以避免拷贝元素)。

4、do while。
两个特点:1- 条件部分不允许定义变量,2- 不管条件怎么样,都确保至少执行一次循环体。

练习

5.14

#include <iostream>
#include <string>
using namespace std;
int main()
{
// 保存解
int maxl = ;
string maxs = "";
bool twoMax = false;
// 当前单词
int k = ;
string word = "";
// 初始化
cin >> word;
string lastw = word;
k = ;
// 迭代处理
while (cin >> word) {
if (word == lastw) {
// 当前单词和上一个单词相同
++k;
} else {
// 当前单词和上一个单词不同
if (k >= maxl) {
// 处理特殊情况:有两个最大值
twoMax = (k == maxl)? true : false;
maxl = k;
maxs = lastw;
}
// 重置计数
lastw = word;
k = ;
}
}
if (twoMax == true) {
cout << "Without answer" << endl;
} else {
cout << "maxl=" << maxl << endl;
cout << "maxs=" << maxs << endl;
}
return ;
}

5.15
a - ix仅在for语句块中可用
b - 缺少init-statement
c - 逻辑错误

5.16
略。倾向于是用传统for

5.17

#include <iostream>
#include <vector>
using namespace std;
int main()
{
// 这种初始化方式只有c++11才能编译通过
vector<int> v1{, , , };
vector<int> v2{, , , , , , };
// 挑出长度较短的那个
int shortl = (v1.size() > v2.size()) ? v2.size() : v1.size();
// 标志变量
bool is_front = true;
for (int i = ; i != shortl; ++i) {
if (v1[i] != v2[i]) {
// 只要有一个元素不同就退出循环
is_front = false;
break;
}
}
// 输出结论
if (is_front) {
cout << "是前缀!" << endl;
} else {
cout << "不是前缀。" << endl;
}
return ;
}

5.18
略!

5.19

#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1, s2;
string short_one;
do {
cout << "请输入两个字符串:" << endl;
cin >> s1 >> s2;
// 赋值号的优先级巨低,要加上括号!!!
cout << (short_one = (s1.size() > s2.size()) ? s2 : s1) << endl;
} while (true);
return ;
}

最新文章

  1. 通过扩展让ASP.NET Web API支持JSONP
  2. 可能是史上最强大的js图表库——ECharts带你入门
  3. Windows DOS 窗口设置字体颜色
  4. windows下为mysql添加日志
  5. 各种编码问题产生原因以及解决办法---------响应编码,请求编码,URL编码
  6. javascript 的事件--阻止冒泡
  7. Online ddl 思维导图
  8. XtraForm默认皮肤的显示
  9. php mysqli注意问题
  10. 我也要这样写define、、
  11. HDU 3068 最长回文 【最长回文子串】
  12. JNDI 什么
  13. 【转】GitHub 优秀的 Android 开源项目
  14. wpf mvvm datagrid DataGridTemplateColumn的绑定无效的可能原因之一!
  15. C#中四步轻松使用log4net记录本地日志
  16. vs2015 制作安装包额外需要安装的软件VSI_bundle
  17. linux shell编程语句if、case.
  18. IdentityModel 中文文档(v1.0.0) 目录
  19. &lt;记录&gt; Ubuntu16.04 安装Redis以及phpredis扩展
  20. Django 实现登陆验证码

热门文章

  1. Spring源码从开始到放弃(一)
  2. jfinal如何调用存储过程?
  3. [移动云计算开发 01] 解决 windows 7 安装设置 nginx 出现端口占用的问题
  4. js 匿名函数-立即调用的函数表达式
  5. Java中Integer类的方法和request的setAttribute方法的使用与理解
  6. 一直深深困扰我的问题——hadoop 重启集群后,之前运行的job运行状态都丢失了
  7. 给input文本框添加灰色提示文字,三种方法.
  8. 荣誉墙项目day28 django常用函数
  9. KVm中EPT逆向映射机制分析
  10. windbg遍历进程页表查看内存