常用算术生成算法
常用算术生成算法
注意:
- 算术生成算法属于小型算法,使用时包含头文件为 #include < numeric>
算法简介:
- accumulate //计算容器元素累计总和
- fill //向容器中添加元素
accumulate
功能描述:
- 计算区间内容器元素累计总和
函数原型:
- accumulate(iterator beg, iterator end, value);
//计算容器累计元素总和
//beg开始迭代器
//end结束迭代器
//value起始累加值
#include <iostream>
#include <vector>
#include <numeric>//包含该头文件
using namespace std;
void test()
{
vector<int> v;
for (int i = 0; i <= 100; i++) {
v.push_back(i);
}
//进行累加
int total = accumulate(v.begin(), v.end(), 0);//5050
int total2 = accumulate(v.begin(), v.end(), 1000);//6050
cout << "total = " << total << endl;
cout << "total2 = " << total2 << endl;
}
int main() {
test();
return 0;
}
注意:accumulate使用时要包含头文件numeric
fill
功能描述:
- 向容器中填充元素
函数原型:
- fill(iterator beg, iterator end, value);
//计算容器累计元素总和
//beg开始迭代器
//end结束迭代器
//value填充的值
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>//包含该头文件
using namespace std;
void Myprint(int val)
{
cout << val << " ";
}
void test()
{
vector<int> v;
v.resize(10);//10个0
fill(v.begin(), v.end(), 100);//填充为10个100
for_each(v.begin(), v.end(), Myprint);
cout << endl;
}
int main() {
test();
return 0;
}