这是我在这里的第一个问题,所以希望这是一个很好的问题(我已经搜索了答案,但还没有找到)。
我有一个用 C++ 编写的基于事件的疾病模型,我正在尝试将其转换为 OOP(部分是出于我自己的学习经验)。基本类别(畜群)存储易感、感染性和抗性动物的数量,以及可能事件发生的速率。
class Herd {
private:
int S,I,R,N;
float birth, death, infection, recovery, movement;
public:
void calc_birth(void) { birth = r*N*(1.0-N/c); }
void calc_infection(void) { infection = N>0 ? beta*S*I/N : 0.0; }
// etc.
};
然后我有vector
一群牛群要跟踪。在整个模型中,我需要计算所有群体中每个成员的总和,在事件改变了群体中个体的数量或类别之后(这种情况经常发生)。我已经有 4 个类别和 5 个事件,并且这个模型可以很容易地扩展并且需要更多。
在我的旧程序代码中,我只是为每个成员设置了一个单独的向量,并且很容易创建一个sum()
函数来计算结果,但是如果不为每个成员(这是可能的,但我怀疑这是一种特别好的方法)。我可以创建一个静态成员(例如sum_S
)来跟踪总数,并在每次发生事件时对其进行更新,但这可能不适用于所有成员,而且我不确定总数是否会慢慢偏离真实值当谈到利率。
有没有办法编写一个sum()
函数,它将我想要的成员作为参数,并返回所有牛群中该特定成员的总和?
谢谢!