泛型算法通則:所有算法的前兩個參數都是一對iterators:[first,last],用來指出容器內一個範圍內的元素。每個算法的聲明中,都表現出它所需要的最低層次的iterator類型。
accumulate() 元素累加
例:
//創建動態數組
vector<int> CreateVector1()
{
vector<int> VeInt;
srand(time(0));
for (int i = 2; i < 12; i++)
{
VeInt.push_back(rand() % 100);
}
return VeInt;
}
//元素累加
int Accumulate(vector<int> intvector)
{
int num = 0;
num = accumulate(intvector.begin(), intvector.end(),0);
return num;
}
//輸出元素
void ShowVector(vector<int> VeInt)
{
vector<int>::iterator showVeInt;
for (showVeInt = VeInt.begin(); showVeInt != VeInt.end(); showVeInt++)
{
cout << *showVeInt << " ";
}
cout << endl;
}
//主函數
void main()
{
vector<int> intArr = CreateVector1();
ShowVector(intArr);
cout << Accumulate(intArr) << endl;
}
泛型算法名稱 |
accumulate() |
作用 |
將容器中的數值相加 |
參數 |
容器開頭,容器結尾,累加初始值 |
adjacent_difference() 相鄰元素的差額
// adjacent_difference()方法
void Adjacent_difference(vector<int> &intvector)
{
adjacent_difference(intvector.begin(), intvector.end(), intvector.begin());
}
//主方法
void main()
{
vector<int> intArr = CreateVector1();
ShowVector(intArr);
Adjacent_difference(intArr);//相鄰元素差額
ShowVector(intArr);
}
泛型算法名稱 |
adjacent_difference() |
作用 |
將容器中的後一個減去前一個獲得差值,放置到另一個容器中,容器可以是本身 |
參數 |
容器開頭,容器結尾,容器 |
只是最簡單的例子。