gpt4 book ai didi

c++ - 对容器中所有元素的成员函数结果求和的最佳方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 23:22:21 27 4
gpt4 key购买 nike

假设我有以下对象:

struct Foo
{
int size() { return 2; }
};

获得总数size 的最佳方式是什么(最易维护、可读性等)? vector<Foo> 中的所有对象?我会发布我的解决方案,但我对更好的想法感兴趣。

更新:

到目前为止,我们有:

  • std::accumulate 和仿函数
  • std::accumulate 和 lambda 表达式
  • 普通的 for 循环

还有其他可行的解决方案吗?你能用 boost::bind 做一些可维护的东西吗?或 std::bind1st/2nd ?

最佳答案

除了你自己的建议,如果你的编译器支持 C++0x lambda 表达式,你可以使用这个更短的版本:

std::vector<Foo> vf;

// do something to populate vf


int totalSize = std::accumulate(vf.begin(),
vf.end(),
0,
[](int sum, const Foo& elem){ return sum + elem.size();});

关于c++ - 对容器中所有元素的成员函数结果求和的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3204871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com