如何解决聚合与键匹配的矢量对象值
我有一个用struct构成的向量,该向量具有一个字符串和一个int。数据是这样的:
John 100
Jacob 90
Blake 99
Andy 105
John 65
Blake 70
Jacob 75
我必须打印得分最高的姓名。在这种情况下,加起来的分数就是这样
Blake 169
Jacob 165
John 165
Andy 105
因此,我必须打印Blake169。将分数汇总后,排序就没什么大问题了,但是如何首先完成汇总?就像MapReduce一样。一个简单的代码将是理想的选择,因为这是已经有点慢的程序的一部分。谢谢。
我最终仅使用循环和另一个向量。还有其他花哨的方法吗?也许是Lambda?
template <typename T>
std::vector<T> aggregateSortVecs(std::vector<T> a)
{
int q = 0;
std::vector<T> final;
while (q < a.size())
{
double total = a[q].data;
for (int i = 1; i < a.size(); i++)
{
if (a[q].key == a[i].key)
{
total += a[i].data;
}
}
final.push_back(T(a[q].key,total));
q++;
}
sort(final.begin(),final.end(),[](const T &lhs,const T &rhs) {
return lhs.data > rhs.data;
});
return final;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。