使用运算符重载添加存储在向量中的类对象

时间:2018-04-05 17:01:48

标签: c++ operator-overloading

编辑:好的,完全被我实际需要做的事情弄糊涂了,以及我不想提出细节的事实,它太混乱了,所以我正在重写我的问题。感谢所有试图提供帮助的人。

我的class Somethingchar a, float b, float c。正在从文件中读取值并将其存储为vector <Something> vec。我想添加对象并最后显示总和。

我将如何做到这一点?

作为一个更具体的例子,它实际上与我正在做的事情有关: 我有class Force持有char type, float xArg, float yArg。这些值从文件中读入并存储在vector <Force> f中。我需要找到该向量中所有力的总和并显示结果。

希望这更好

2 个答案:

答案 0 :(得分:3)

std::accumulate与自定义累加器一起使用:

std::accumulate(std::begin(vec), std::end(vec), 0.f,
                [](auto acc, auto const& something) {
                    return acc + something.b;
                });

答案 1 :(得分:1)

除了使用std::accumulate之外,您还可以迭代vec的项目并累积项目中的值。

double sum = 0;
for(auto& item : vec )
{
   sum += item.b;
}