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

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

Susan Sarandon
Susan Sarandon原创
2024-12-01 01:52:10705浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn