目录
一、常用的算数算法
包含头文件为<numeric>
1.accmulate
函数原型
accmulate(iterator beg, iterator end, value)
// 计算元素累计和
// 开始迭代器
// 结束迭代器
// 初始值

2.fill
函数原型
fill(iterator beg, iterator end, value)
// 向容器中填充元素
// beg开始迭代器
// end 结束迭代器
// value 要填充的值

二、常用的集合算法
1.set_intersection
函数原型
set_intersection(iterator beg, iterator end, iterator beg2, iterator end2, iterator dest)
// 求两个集合的交集,两个集合必须是有序序列
// beg1 容器1开始迭代器
// end 容器1结束迭代器
// beg2 容器2开始迭代器
// end2 容器2结束迭代器
// dest 目标容器开始迭代器
// 返回值为容器最后一个非零值对应的迭代器。因为容器的size可能大于交集的size,返回值就是交集最后一个元素对应的迭代器。

2.set_union
函数原型
set_union(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest)
// 求两个集合的并集
// 注意两个集合必须是有序序列
// beg1 容器1开始迭代器
// end 容器1结束迭代器
// beg2 容器2开始迭代器
// end2 容器2结束迭代器
// dest 目标容器开始迭代器

3.set_difference
cpp
#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<numeric>
using namespace std;
void test2()
{
vector<int> v;
vector<int> v1;
for(int i=0;i<10;i++)
{
v.push_back(i);
v1.push_back(i+5);
}
cout << "v - v1" << endl;
vector<int> v2;
v2.resize(v1.size()+v.size());
vector<int>::iterator it_end = set_difference(v.begin(),v.end(),v1.begin(),v1.end(),v2.begin());
for(vector<int>::iterator it=v2.begin();it!=it_end;it++)
{
cout << *it << " ";
}
cout << endl;
cout << "v1- v" << endl;
it_end = set_difference(v1.begin(),v1.end(),v.begin(),v.end(),v2.begin());
for(vector<int>::iterator it=v2.begin();it!=it_end;it++)
{
cout << *it << " ";
}
cout << endl;
}
int main()
{
test2();
return 0;
}
