STL accumulate與自定義資料型別

2021-06-06 21:33:11 字數 891 閱讀 9831

c++ stl中有乙個通用的數值型別計算函式— accumulate(),可以用來直接計算陣列或者容器中c++內建資料型別,例如:

#include int arr=;

vectorva(&arr[0],&arr[5]);

int sum=accumulate(va.begin(),va.end(),0); //sum = 150

但是對於自定義資料型別,我們就需要自己動手寫乙個類來實現自定義資料的處理,然後讓它作為accumulate()的第四個引數,accumulate()的原型為(檔案取自dev-c++編譯器):

template_tp accumulate(_inputiterator __first, _inputiterator __last, _tp __init,

_binaryoperation __binary_op)

第四個引數為 __binary_op ,我們需要重寫這個函式物件,後面還會繼續分析...

假設自定義資料型別為:

struct student

;

那麼我們可能要定義如下列的類:
#include #include #include #include #include using namespace std;

struct student

;class ps

};int main()

, ,

};int sum=accumulate(&student[0],&student[3],0,ps());

cout

return 0;

}

自增與自減運算

自增與自減運算 自增與自減主要有以下兩種作用 1 無論是前置 後置,都是自身變數加1,都是變數減1 2 當作為表示式時,前置和後置就有區別了。前置運算子的結果是加1或減1之後的結果,前置運算子的結果是加1或減1之前的結果。下面通過乙個簡單的程式進行說明 include using namespace...

自增 i與i 自減 i與i

a 前置自增 變數值先 1,再計算表示式的值 前自增,先增再用 a 後置自增 先計算表示式的值 變數值後 1 後自增,先用再增 a 後置自減 先計算表示式的值 變數值後 1 後自減,先用再減 a 前置自減 變數值先 1,再計算表示式的值 前自減,先減再用 當自增自減遇上邏輯與和邏輯或 因邏輯與一非即...

自增與自減運算子

include int main 注意 無論是a 還是 a都等同於a a 1,在表示式執行完畢後a的值都自增了1,無論是a 還是 a都等同於a a 1,在表示式執行完畢後a的值都自減少1 c程式為邏輯逐行運算,遂值在逐行運算後 不斷在變化,只是區別與輸出與否。自增自減運算 字尾自增 x i x i ...