#include<iostream>
using namespace std;
#include<vector>
#include"functional"
#include"algorithm"
#include<set>
#include<string>
#include<list>
#include<stack>
#include<numeric> //accumulate() 算法 头文件
void printfVec(vector<int> m_vec_1)
{
for (vector<int>::iterator it = m_vec_1.begin(); it != m_vec_1.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
// accumulate() 算法 将容器中所有元素的值相加在和一个初始值相加 并返回这个值
void main91()
{
vector<int> m_vec;
m_vec.push_back(2);
m_vec.push_back(1);
m_vec.push_back(3);
m_vec.push_back(4);
int sum = accumulate(m_vec.begin(), m_vec.end(), 10);
cout << sum;
}
//fill() 算法
void main92()
{
vector<int> m_vec;
m_vec.push_back(2);
m_vec.push_back(1);
m_vec.push_back(3);
m_vec.push_back(4);
//将输入值赋给标志范围内的所有元素。
fill(m_vec.begin(), m_vec.end(), 10);
printfVec(m_vec);
}
/*
set_union: 构造一个有序序列,包含两个有序序列的并集。
set_intersection: 构造一个有序序列,包含两个有序序列的交集。
set_difference: 构造一个有序序列,该序列保留第一个有序序列中存在而第二个有
*/
//有关于set_union (并集) set_intersection (交集) 以及 set_difference()
void main93()
{
vector<int> v1;
vector<int> v2;
vector<int> v3;
vector<int> v4;
vector<int> v5;
v1.push_back(2);
v1.push_back(3);
v1.push_back(4);
v1.push_back(5);
v2.push_back(2);
v2.push_back(13);
v2.push_back(14);
v2.push_back(15);
v3.resize(v1.size() + v2.size());
v4.resize(v1.size() + v2.size());
v5.resize(v1.size() + v2.size());
set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());
printfVec(v3);
set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), v4.begin());
printfVec(v4);
set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), v5.begin());
printfVec(v5);
}
int main()
{
//main91();// accumulate() 算法
//main92();//fill() 算法
main93(); 有关于set_union (并集) set_intersection (交集) 以及 set_difference()
system("pause");
return 0;
}
C++STL 常用的算术生成以及集合运算的算法
最新推荐文章于 2024-10-31 21:36:43 发布