ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
寻找解决这类问题的方法,首先可以从设计一些功能简单易运行的函数入手,每一个成功运行的简单函数对于解题都是有帮助的。一步步的设计,最后综合起来得到解决问题的方法。这就是所说的自底向上的程序设计方法。当然,想预先知道哪些函数对于程序设计有帮助,对于初学者来说还是比较困难的,随着经验的积累到一定的程度,你才会得心应手。 同样,由于经验的缺失,有时候我们并不能知道到底要写什么样的函数,这时我们就需要找到程序中有过类似解决经验的子问题,先把它们解决。 在7.9里,我们介绍了一个可以从一串字符中统计给定字符出现次数的函数。我们可以把这个函数作为一个“遍历和计数”的模型。这个模型的主要构成元素有: * 一个可遍历的集合或容器,类似于字符串或向量。 * 一个可以应用到每个元素用于测试的语句。 * 一个统计已通过遍历元素个数的计数器。 在这里,我预先准备了一个叫做“howMany”的函数,用以统计向量中等于给定数值的数出现的次数。所需要的参数就只有向量值和给定整数的值。函数的返回值就是给定整数值出现的次数。 ~~~ int howMany (const apvector<int>& vec, int value) { int count = 0; for (int i=0; i< vec.length(); i++) { if (vec[i] == value) count++; } return count; } ~~~