小编spa*_*Lem的帖子

对象数组的特定成员的总和

这是我的第一个问题,所以希望这是一个好问题(我已经寻找答案,但尚未找到)。

我有一个用 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.
};  
Run Code Online (Sandbox Code Playgroud)

然后我有一群vector牛群需要跟踪。在整个模型中,在某个事件改变了群体中个体的数量或类别之后(这种情况经常发生),我需要计算所有群体中每个成员的总和。我已经有 4 个类别和 5 个事件,并且该模型可以轻松扩展并且需要更多。

在我旧的过程代码中,我只是为每个成员都有一个单独的向量,并且很容易创建一个sum()函数来计算结果,但我不知道如何在不为类编写单独的求和函数的情况下使用类来执行此操作每个成员(这是可能的,但我怀疑这是一个特别好的方法)。我可以创建一个静态成员(例如sum_S)来跟踪总数,并在每次事件发生时更新它,但这可能并不适合所有成员,而且我不确定总数是否会慢慢偏离真实值当谈到费率时。

有没有一种方法可以编写一个sum()函数,该函数将我想要的成员作为参数,并返回所有群体中该特定成员的总和?

谢谢你!

c++ sum member

2
推荐指数
1
解决办法
2718
查看次数

标签 统计

c++ ×1

member ×1

sum ×1