C++ 使用运算符重载添加存储在vector中的类对象
编辑:好的,我完全被我实际需要做的事情和我不想说具体的事实弄糊涂了,这太让人困惑了,所以我重新写下我的问题。谢谢所有试图帮忙的人 我有一个C++ 使用运算符重载添加存储在vector中的类对象,c++,operator-overloading,C++,Operator Overloading,编辑:好的,我完全被我实际需要做的事情和我不想说具体的事实弄糊涂了,这太让人困惑了,所以我重新写下我的问题。谢谢所有试图帮忙的人 我有一个类某物,它有字符a,浮点b,浮点c。这些值从文件中读取并存储为矢量向量。我想添加对象并在最后显示总和 我该怎么做呢 作为一个更具体的例子,这实际上与我正在做的事情有关: 我有一个类Force,它包含字符类型、float xArg、float yArg。这些值从文件中读取并存储在向量f中。我需要找到向量中所有力的总和,并显示结果 希望这更好与自定义累加器一起使用
类某物
,它有字符a,浮点b,浮点c
。这些值从文件中读取并存储为矢量向量
。我想添加对象并在最后显示总和
我该怎么做呢
作为一个更具体的例子,这实际上与我正在做的事情有关:
我有一个类Force
,它包含字符类型、float xArg、float yArg
。这些值从文件中读取并存储在向量f
中。我需要找到向量中所有力的总和,并显示结果
希望这更好与自定义累加器一起使用:
std::accumulate(std::begin(vec), std::end(vec), 0.f,
[](auto acc, auto const& something) {
return acc + something.b;
});
与自定义累加器一起使用:
std::accumulate(std::begin(vec), std::end(vec), 0.f,
[](auto acc, auto const& something) {
return acc + something.b;
});
除了使用
std::acculate
,您还可以迭代vec
的项目,并从项目中累积值
double sum = 0;
for(auto& item : vec )
{
sum += item.b;
}
除了使用
std::acculate
,您还可以迭代vec
的项目,并从项目中累积值
double sum = 0;
for(auto& item : vec )
{
sum += item.b;
}
STL中的
累积
,可能还有
中的另一个算法?你如何或为什么“知道”你需要重载一个操作符?@NickyC应该说“我想使用操作符重载来实现”@Ana你有喜欢操作符+
的理由吗?对于一个不涉及类本身求和的任务来说,这似乎是不直观的。我认为编辑就可以了。我也认为这是一个很好的机会与大家分享这个术语。从STL中积累
,也许还有另一个算法从
?你如何或为什么“知道”你需要重载一个操作符?@NickyC应该说“我想使用操作符重载来实现”@Ana你喜欢操作符+
有什么理由吗?对于一个不涉及类本身求和的任务来说,这似乎是不直观的。我认为编辑就可以了。我也认为这是一个与你们分享这个术语的绝佳机会。