5 常用算数生成算法
学习目标:
掌握常用算数生成算法
注意:
算数生成算法属于小型算法,使用时包含的头文件为#include< numeric >
算法简介:
accumulate;——计算容器元素累加和
fill;——向容器中添加元素
5.1 accumulate
功能描述:
计算区间内 容器元素累积总和
函数原型:
accumulate(iterator beg ,iterator end ,value);
beg 开始迭代器
end 结束迭代器
dest 起始值
#include<iostream>
using namespace std;
#include<vector>
#include<string>
//插入算法头文件
#include<algorithm>
#include<functional>
#include<numeric>
void print(int v)
{
cout << v << " ";
}
void test01()
{
vector<int> v1;
for (int i = 0; i <= 100; i++)
{
v1.push_back(i);
}
for_each(v1.begin(), v1.end(), print);//利用普通函数
cout << endl;
//计算区间内 容器元素累积总和:accumulate(iterator beg ,iterator end ,value)
int total=accumulate(v1.begin(), v1.end(),0);
cout << "total=" << total << endl;
}
int main()
{
test01();
}
5.2 fill
功能描述:
向容器中填充指定元素
函数原型:
fill(iterator beg ,iterator end ,value);
beg 开始迭代器
end 结束迭代器
value 填充的值
#include<iostream>
using namespace std;
#include<vector>
#include<string>
//插入算法头文件
#include<algorithm>
#include<functional>
#include<numeric>
void print(int v)
{
cout << v << " ";
}
void test01()
{
vector<int> v1;
v1.resize(10);//此时容器中包含10个0
cout << "填充前" << endl;
for_each(v1.begin(), v1.end(), print);//利用普通函数
cout << endl;
//向容器中填充指定元素:fill(iterator beg ,iterator end ,value)
fill(v1.begin(),v1.end() ,100);
cout << "填充后" << endl;
for_each(v1.begin(), v1.end(), print);//利用普通函数
cout << endl;
}
int main()
{
test01();
}