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 ...