💿一个串联前文的例子

通过一个例子,复习巩固已经学习的STL的用法

在“学生”容器中作统计

在这个例子里面,我们将利用STL的容器,创建一个“学生”容器,并在其中利用STL的算法,通过STL的迭代器作用于容器,从而作一些统计工作。

下面这个例子能够完全看懂即可,如果想要上手写一遍,注意补全各种类型的定义。

学生的类型

一下是一个简单的学生类型,这将是我们要放在容器中的数据。下面的类的定义是不完备的,只列出了后续需要用到的部分,省略的部分可自行补充。

需求及实现

建立“学生”容器

容器元素按“学号由小到大”排序

显示每个学生的信息

统计“计算机”专业的人数

统计物理专业的人数呢?

再统计“XXX”专业的人数呢?

这里稍微拓展一下仿函数(Functor)的使用,在后续会有详细的介绍。

定义函数对象类如下:

下面就可以这样使用了:

类似的,统计“XXX”专业男生/女生的人数

如果还有更多的需求,再定义更多的函数或者函数对象对象会比较麻烦,我们可以采用λ\lambda表达式来解决。

  • 匿名函数

  • 编译器隐式地为之定义类(重载了函数调用操作符)和创建函数对象。

比如说:

最后更新于

这有帮助吗?