码迷,mamicode.com
首页 > 编程语言 > 详细

stl集合算法

时间:2017-06-08 23:44:34      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:pre   差集   交集   集合   cti   求和   set   ntc   eric   

accumulate()  累加
?	accumulate:  对指定范围内的元素求和,然后结果再加上一个由val指定的初始值。
?	#include<numeric>
		vector<int> vecIntA;
		vecIntA.push_back(1);
		vecIntA.push_back(3);
		vecIntA.push_back(5);
		vecIntA.push_back(7);
		vecIntA.push_back(9);
		int iSum = accumulate(vecIntA.begin(), vecIntA.end(), 100);		//iSum==125
fill() 
?	fill:   将输入值赋给标志范围内的所有元素。
		vector<int> vecIntA;
		vecIntA.push_back(1);
		vecIntA.push_back(3);
		vecIntA.push_back(5);
		vecIntA.push_back(7);
		vecIntA.push_back(9);
		fill(vecIntA.begin(), vecIntA.end(), 8);		//8, 8, 8, 8, 8
10.3.8常用的集合算法
set_union(),set_intersection(),set_difference()
?	set_union:  构造一个有序序列,包含两个有序序列的并集。
?	set_intersection:  构造一个有序序列,包含两个有序序列的交集。
?	set_difference:  构造一个有序序列,该序列保留第一个有序序列中存在而第二个有序序列中不存在的元素。
vector<int> vecIntA;
		vecIntA.push_back(1);
		vecIntA.push_back(3);
		vecIntA.push_back(5);
		vecIntA.push_back(7);
		vecIntA.push_back(9);

		vector<int> vecIntB;
		vecIntB.push_back(1);
		vecIntB.push_back(3);
		vecIntB.push_back(5);
		vecIntB.push_back(6);
		vecIntB.push_back(8);

		vector<int> vecIntC;
		vecIntC.resize(10);

		//并集
		set_union(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin());		//vecIntC : {1,3,5,6,7,8,9,0,0,0}

		//交集
		fill(vecIntC.begin(),vecIntC.end(),0);
		set_intersection(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin());		//vecIntC: {1,3,5,0,0,0,0,0,0,0}

		//差集
		fill(vecIntC.begin(),vecIntC.end(),0);
		set_difference(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin());			//vecIntC: {7,9,0,0,0,0,0,0,0,0}

  

stl集合算法

标签:pre   差集   交集   集合   cti   求和   set   ntc   eric   

原文地址:http://www.cnblogs.com/xiaochige/p/6965018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!