STL学习(十一、常用的算数算法和集合算法)

目录

一、常用的算数算法

1.accmulate

2.fill

二、常用的集合算法

1.set_intersection

2.set_union

3.set_difference


一、常用的算数算法

包含头文件为<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;
}
相关推荐
颜酱1 分钟前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
地平线开发者16 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮16 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者17 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考17 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx20 小时前
CART决策树基本原理
算法·机器学习
Wect21 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱21 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
肆忆_1 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星1 天前
虚函数表:C++ 多态背后的那个男人
c++