codecamp

C++ 计数

寻找解决这类问题的方法,首先可以从设计一些功能简单易运行的函数入手,每一个成功运行的简单函数对于解题都是有帮助的。一步步的设计,最后综合起来得到解决问题的方法。这就是所说的自底向上的程序设计方法。当然,想预先知道哪些函数对于程序设计有帮助,对于初学者来说还是比较困难的,随着经验的积累到一定的程度,你才会得心应手。

同样,由于经验的缺失,有时候我们并不能知道到底要写什么样的函数,这时我们就需要找到程序中有过类似解决经验的子问题,先把它们解决。

在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;
} 
C++ 随机数的向量
C++ 检查其他值
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }