stl集合算法

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}

  

时间: 2024-12-29 11:52:28

stl集合算法的相关文章

STL查找、排序、替换、集合算法

1.STL查找算法 (1).代码如下: #include<iostream> #include<vector> #include<algorithm> using namespace std; //查找算法!!! void main_adjacent_find(){     vector<int> v1;      v1.push_back(1);     v1.push_back(2);     v1.push_back(2);     v1.push_b

c++STL之常用集合算法

set_intersection:求两个容器的交集 set_union:求两个集合的并集 set_difference:求两个集合的差集 1.set_intersection #include<iostream> using namespace std; #include <vector> #include <algorithm> //常用集合算法 set_intersection void myPrint(int val) { cout << val &l

初探STL之算法

算法 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成.要使用 STL中的算法函数必须包含头文件<algorithm>,对于数值算法须包含<numeric>,<functional>中则定义了一些模板类,用来声明函数对象. 分类 STL中算法大致分为四类: 1.非可变序列算法:指不直接修改其所操作的容器内容的算法. 2.可变序列算法:指可以修改它们所操作的容器内容的算法. 3.排序算法

STL之算法总结

STL之算法总结 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成. 要使用 STL中的算法函数必须包含头文件<algorithm>, 对于数值算法须包含<numeric>,<functional>中则定义了一些模板类,用来声明函数对象. STL中算法大致分为四类: 1.非可变序列算法:指不直接修改其所操作的容器内容的算法. 2.可变序列算法:指可以修改它们所操作的容器内容的算法. 3

C++复习:STL之算法

算法 1算法基础 1.1算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm>是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较.交换.查找.遍历操作.复制.修改.反转.排序.合并等等. <numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作. <functional>中则定义了一些模板类,用以声

[C++ STL] 常用算法总结

1 概述 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成.要使用 STL中的算法函数必须包含头文件<algorithm>,对于数值算法须包含<numeric>,<functional>中则定义了一些模板类,用来声明函数对象. 2 常用算法介绍 STL中算法大致分为四类: 非可变序列算法:指不直接修改其所操作的容器内容的算法. 可变序列算法:指可以修改它们所操作的容器内容的算法. 排序

C++ STL(十)算法

算法(Algorithm):STL算法主要由头文件<algorithm>,<numeric>和<functional>组成 <algorithm> 比较.交换.查找.遍历.复制.修改.反转.排序.合并等等算法 <numeric> 只包括几个在序列上进行数学运算的模板函数,加法.乘法等 <functional> 定义了一些模板类,用于声明函数对象 查找算法: _FwdIt adjacent_find(_FwdIt _First, _Fw

集合框架之链表集合算法

链表集合算法: 1.链=引用 2.链表集合与数组集合的区别:在增值方面,数组集合的速度比链表集合算法[学Java,到凯哥学堂kaige123.com]的速度要快:但是链表集合在增删值和修改值方面要更灵活,它的原理就好比链条. 3.链表的分类: 3.1单链集合(了解即可):上家能找到下家,但是下家找不到上家,即通过上一个数组可以找到下一个数组,但是没办法通过下一个数组找到上一个数组.如下图: 3.2双链集合:上家能找到下家,下家也能找到上家.如下图: 4.代码实现(以双链为例): 4.1添加值 4

集合框架之数组集合算法

如何检测程序的健康程度? 如果想要知道程序运行所占的CPU和内存的情况可以使用飞行器,这样就可以知道程序的稳定性了.在JDK的bin目录下可以找到飞行器.如下图: 数组集合算法: 1.数组与集合的区别和联系: 数组是有限存储(规定了数组长度就只能存储那么多值),而集合是无限存储,但其实集合也是由数组做成的. 2.数组集合算法的原理: 当向集合里面存储一个值时,集合里面会为其申请一个适当长度的数组来存储,第二次存储值时,如果数组的长度不足以存储第二次的值,就重新申请一个长一点的数组,先把原来的数组