泛型算法通则:所有算法的前两个参数都是一对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() |
作用 |
将容器中的后一个减去前一个获得差值,放置到另一个容器中,容器可以是本身 |
参数 |
容器开头,容器结尾,容器 |
只是最简单的例子。