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;
}
相关推荐
盐焗西兰花14 分钟前
鸿蒙学习实战之路:状态管理最佳实践
学习·华为·harmonyos
NiNi_suanfa31 分钟前
【Qt】Qt 批量修改同类对象
开发语言·c++·qt
信奥胡老师1 小时前
苹果电脑(mac系统)安装vscode与配置c++环境,并可以使用万能头文件全流程
c++·ide·vscode·macos·编辑器
妖灵翎幺1 小时前
C++ 中的 :: 操作符详解(一切情况)
开发语言·c++·ide
风筝在晴天搁浅2 小时前
代码随想录 718.最长重复子数组
算法
奔跑吧 android2 小时前
【vscode】【远程 ssh 开发】【环境搭建】
ide·vscode·ssh
kyle~2 小时前
算法---回溯算法
算法
小毅&Nora2 小时前
【人工智能】【深度学习】 ⑦ 从零开始AI学习路径:从Python到大模型的实战指南
人工智能·深度学习·学习
Maxwell_li12 小时前
Pandas 描述分析和分组分析学习文档
学习·数据分析·numpy·pandas·matplotlib
star _chen2 小时前
C++实现完美洗牌算法
开发语言·c++·算法