首頁 > 後端開發 > C++ > 如何有效地對 C 向量的元素求和?

如何有效地對 C 向量的元素求和?

Linda Hamilton
發布: 2024-11-24 09:15:14
原創
962 人瀏覽過

How Can I Efficiently Sum the Elements of a C   Vector?

確定C 向量中元素的總和

在C 中,求std::vector 中元素的總和需要循環或標準演算法來迭代並累積值。方法的選擇取決於所使用的 C 版本,每種方法都有自己的優點。

C 03

  • 經典for 迴圈: 使用傳統的 for循環迭代元素並遞增運行總和

    int sum_of_elems = 0;
    for (auto it = vector.begin(); it != vector.end(); ++it)
      sum_of_elems += *it;
    登入後複製
  • 累積演算法: 此演算法由提供;header 累積通過迭代器範圍的元素的總和。

    #include <numeric>
    int sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);
    登入後複製

C 11 及更高版本

  • std🎜>

    #include <numeric>
    decltype(vector)::value_type sum_of_elems = std::accumulate(vector.begin(), vector.end(), decltype(vector)::value_type(0));
    登入後複製
    std- :
  • 相同std::accumulate演算法稍加修改即可根據向量的元素類型自動推導回傳類型。
  • std::for_each(vector.begin(), vector.end(), [&](int n) { sum_of_elems += n; });
    登入後複製
    std::for_each 循環:
  • 此循環語法將lambda 函數應用於向量的每個元素,更新其內的sum 變數range.
  • for (auto& n : vector)
      sum_of_elems += n;
    登入後複製
    基於範圍的for 迴圈:
  • 這種 for 迴圈語法糖直接迭代元素,無需單獨的迭代器物件。

    C 17 且稍後
  • #include <numeric>
    auto result = std::reduce(v.begin(), v.end());
    登入後複製
    std::🎜>
std::redreduce 演算法:

以上是如何有效地對 C 向量的元素求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板