首页 > 后端开发 > C++ > 如何在 C 中有效地求和 std::vector 的元素?

如何在 C 中有效地求和 std::vector 的元素?

Susan Sarandon
发布: 2024-12-01 01:52:10
原创
651 人浏览过

How Can I Efficiently Sum the Elements of a std::vector in C  ?

std::vector 中元素的求和技术

求 std::vector 中元素的总和是一个常见的操作。以下是各种方法:

C 03

  • 经典 For 循环:

    int sum_of_elems = 0;
    for (std::vector<int>::iterator it = vector.begin(); it != vector.end(); ++it)
      sum_of_elems += *it;
    登录后复制
  • 标准算法:

    #include <numeric>
    sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);
    登录后复制

C 11 及以上

  • 自动类型跟踪:

    #include <numeric>
    sum_of_elems = std::accumulate(vector.begin(), vector.end(),
                                  decltype(vector)::value_type(0));
    登录后复制
  • std::for_each:

    std::for_each(vector.begin(), vector.end(), [&] (int n) {
      sum_of_elems += n;
    });
    登录后复制
  • 范围-基于循环:

    for (auto& n : vector)
      sum_of_elems += n;
    登录后复制

C 17 和以上

  • std::reduce:

    #include <numeric>
    auto result = std::reduce(v.begin(), v.end());
    登录后复制

此函数根据以下内容推断结果类型向量的元素类型,允许自动处理不同的数字类型。

以上是如何在 C 中有效地求和 std::vector 的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板