首页 > 代码库 > stl集合算法
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}
stl集合算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。