最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ accumulate函數(shù)詳細介紹和具體案例

 更新時間:2022年08月18日 16:48:59   作者:zhangbw~  
這篇文章主要介紹了C++ accumulate函數(shù)詳細介紹和具體案例,accumulate是numeric庫中的一個函數(shù),主要用來對指定范圍內(nèi)元素求和,但也自行指定一些其他操作,如范圍內(nèi)所有元素相乘、相除等

一、函數(shù)簡單介紹

accumulate是numeric庫中的一個函數(shù),主要用來對指定范圍內(nèi)元素求和,但也自行指定一些其他操作,如范圍內(nèi)所有元素相乘、相除等。

使用前需要引入相應(yīng)的頭文件。

#include <numeric>
  • 函數(shù)共有四個參數(shù),其中前三個為必須,第四個為非必需。
  • 若不指定第四個參數(shù),則默認對范圍內(nèi)的元素進行累加操作。
accumulate(起始迭代器, 結(jié)束迭代器, 初始值, 自定義操作函數(shù))

二、具體使用場景

1. 計算數(shù)組中所有元素的和

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;

int main() {
    vector<int> arr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int sum = accumulate(arr.begin(), arr.end(), 0); // 初值0 + (1 + 2 + 3 + 4 +... + 10)
    cout << sum << endl;	// 輸出55
    return 0;
}

2. 計算數(shù)組中所有元素的乘積

需要指定第四個參數(shù),這里使用的是乘法函數(shù) multiplies<type>(), type根據(jù)元素的類型選擇。

#include <iostream>
#include <vector>
#include <numeric>

using namespace std;

int main() {
    vector<int> arr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int sum = accumulate(arr.begin(), arr.end(), 1, multiplies<int>()); // 初值1 * (1 * 2 * 3 * 4 *... * 10)
    cout << sum << endl;	// 輸出3628800
    return 0;
}

3. 計算數(shù)組中每個元素乘以3之后的和

#include <iostream>
#include <vector>
#include <numeric>

using namespace std;

int fun(int acc, int num) {
    return acc + num * 3;     // 計算數(shù)組中每個元素乘以3
}

int main() {
    vector<int> arr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int sum = accumulate(arr.begin(), arr.end(), 0, fun);
    cout << sum << endl;	// 輸出 165
    return 0;
}

4.計算數(shù)組中每個元素減去3之后的和

#include <iostream>
#include <vector>
#include <numeric>

using namespace std;

int fun(int acc, int num) {
    return acc + (num - 3) ;     // 計算數(shù)組中每個元素減去3之后的和
}

int main() {
    vector<int> arr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int sum = accumulate(arr.begin(), arr.end(), 0, fun);
    cout << sum << endl;    // 輸出25
    return 0;
}

5.計算班級內(nèi)學生的平均分

#include <iostream>
#include <vector>
#include <numeric>

using namespace std;

struct Student {
    string name;
    int score;
    Student() {};   // 無參構(gòu)造函數(shù)
    Student(string name, int score) : name(name), score(score) {};  // 有參構(gòu)造函數(shù)
};

int fun(int acc, Student b) {
    return a + b.score;
}

int main() {
    vector<Student> arr;
    arr.emplace_back("Alice", 82);
    arr.emplace_back("Bob", 91);
    arr.emplace_back("Lucy", 85);
    arr.emplace_back("Anna", 60);
    arr.emplace_back("June", 73);
    int avg_score = accumulate(arr.begin(), arr.end(), 0, fun) / arr.size();	// 總分/學生數(shù)
    cout << avg_score << endl;
    return 0;
}

6.拼接字符串

C++中字符串之間也可以使用+,即拼接兩個字符串。

#include <iostream>
#include <vector>
#include <numeric>

using namespace std;

int main() {
    vector<string> words{"this ", "is ", "a ", "sentence!"};
    string init, res;
    res = accumulate(words.begin(), words.end(), init);    // 連接字符串
    cout << res << endl;    // this is a sentence!
    return 0;
}

到此這篇關(guān)于C++ accumulate函數(shù)詳細介紹和具體案例的文章就介紹到這了,更多相關(guān)C++ accumulate函數(shù) 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言用指針函數(shù)尋找數(shù)組中的最大值與次大值

    C語言用指針函數(shù)尋找數(shù)組中的最大值與次大值

    這篇文章主要給大家介紹了關(guān)于C語言用指針函數(shù)尋找數(shù)組中的最大值與次大值的相關(guān)資料,該代碼通過定義一個名為LargestTow的函數(shù)來找出數(shù)組中的最大值和次大值,并將結(jié)果分別存入指針所指向的內(nèi)存單元中,需要的朋友可以參考下
    2024-11-11
  • C++中的類型查詢之探索typeid和type_info(推薦)

    C++中的類型查詢之探索typeid和type_info(推薦)

    C++ 是一種靜態(tài)類型語言,這意味著每個變量的類型在編譯時就已經(jīng)確定,在這篇技術(shù)分享中,我們將探討 C++ 中的 typeid 和 type_info,以及如何使用它們來獲取類型信息,需要的朋友可以參考下
    2024-05-05
  • C語言中快速排序和插入排序優(yōu)化的實現(xiàn)

    C語言中快速排序和插入排序優(yōu)化的實現(xiàn)

    這篇文章主要介紹了C語言中快速排序和插入排序優(yōu)化的實現(xiàn),包括雙向劃分快速排序方法的介紹,需要的朋友可以參考下
    2015-11-11
  • 嵌入式C語言二級指針在鏈表中的應(yīng)用

    嵌入式C語言二級指針在鏈表中的應(yīng)用

    這篇文章主要為大家介紹了嵌入式C語言二級指針在鏈表中的應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • vsCode配置import@路徑提示的實現(xiàn)步驟

    vsCode配置import@路徑提示的實現(xiàn)步驟

    在導入文件設(shè)置路徑的時候方便了很多,本文主要介紹了vsCode配置import@路徑提示的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • C語言簡明分析選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的使用

    C語言簡明分析選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的使用

    C語言條件控制語句選擇結(jié)構(gòu),是屬于計算機的語言編輯,有在C語言條件控制中的語句選擇結(jié)構(gòu)的存在,即是C語言條件控制語句選擇結(jié)構(gòu),循環(huán)控制語句是一個基于C語言的編程語句,該語句主要有while循環(huán)語句、do-while循環(huán)語句和for循環(huán)語句來實現(xiàn)循環(huán)結(jié)構(gòu)
    2022-04-04
  • 淺談C++對象組合

    淺談C++對象組合

    本文主要說明對象創(chuàng)建時構(gòu)造函數(shù)的執(zhí)行順序,對象成員的初始化順序;對象銷毀時析構(gòu)函數(shù)的執(zhí)行順序,對象成員的銷毀順序。
    2015-06-06
  • 使用C語言求N的階乘的方法

    使用C語言求N的階乘的方法

    這篇文章主要介紹了使用C語言求N的階乘的方法,包括一道相關(guān)的ACM題目示例,需要的朋友可以參考下
    2015-08-08
  • 用c語言實現(xiàn)和平精英的完整代碼

    用c語言實現(xiàn)和平精英的完整代碼

    這篇文章主要介紹了用c語言實現(xiàn)和平精英的完整代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Qt Creator + CMake 構(gòu)建教程的方法步驟

    Qt Creator + CMake 構(gòu)建教程的方法步驟

    本文主要介紹了Qt Creator + CMake 構(gòu)建教程的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02

最新評論

亚东县| 加查县| 江门市| 新巴尔虎左旗| 通州市| 黔西县| 社会| 集贤县| 迁安市| 大庆市| 宽甸| 固安县| 双城市| 屯留县| 滦南县| 六枝特区| 宜良县| 闽侯县| 珲春市| 东阳市| 于都县| 台安县| 周至县| 宜章县| 民权县| 凉山| 永善县| 明溪县| 包头市| 巴楚县| 图片| 万盛区| 永顺县| 印江| 顺昌县| 金阳县| 清河县| 醴陵市| 阿坝| 垦利县| 旅游|