20240514,算法(算数生成,集合)

 还有一个大案例,那个就不急了,完结撒花,起码C++是打代码没什么大问题的完结,不像C,还要我返工/笑哭

常用算数生成算法

属于小算法,头文件 #include <numeric> 
accumulate  //计算容器累计总和
fill  //容器中添加元素

ACCUMULATE

accumulate  //计算容器累计总和 
accumulate(begin,end,val)           /val==累加起始值

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<numeric>
using namespace std;
/*
accumulate(begin,end,val)  //val==起始值
*/
void myprint(int val) {cout << val << "  ";
}
void test01() {vector<int>v;for (int i = 0; i <= 100; i++) {v.push_back(i);}int sum=accumulate(v.begin(), v.end(), 0);cout <<sum<< endl;sum = accumulate(v.begin(), v.end(), 1000);cout << sum << endl;}
void test02() {}
int main() {test01();test02();return 0;
}
FILL

fill  //容器中添加元素       fill(begin,end,val) 

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<numeric>
using namespace std;
/*
fill(begin,end,val)  
*/
void myprint(int val) {cout << val << "  ";
}
void test01() {vector<int>v;v.resize(10);fill(v.begin(), v.end(), 1000);for_each(v.begin(), v.end(), myprint);cout << endl;
}
void test02() {}
int main() {test01();test02();return 0;
}

常用集合算法

set_intersection  //交集
set_union  //并集
set_difference  //差集 
都必须是有序数列,返回迭代器

SET_INTERECTION

set_intersection  //交集      set_intersection(beg1,end1,beg2,end2,iterator dest)返回迭代器

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
//#include<numeric>
using namespace std;
/*
set_intersection(beg1,end1,beg2,end2,iterator dest)
*/
void myprint(int val) {cout << val << "  ";
}
void test01() {vector<int>v;vector<int>v1;vector<int>v2;for (int i = 0; i < 10; i++) {v.push_back(i);v1.push_back(i+5);}//v2.resize(v.size() < v1.size()?v.size():v1.size());//提前开辟v2.resize(min(v.size(), v1.size()));vector<int>::iterator iEnd = set_intersection(v.begin(), v.end(), v1.begin(), v1.end(), v2.begin());for_each(v2.begin(), v2.end(), myprint);cout << endl;for_each(v2.begin(), iEnd, myprint);//用返回的迭代器打印输出
}
void test02() {}
int main() {test01();test02();return 0;
}
SET_UNION

set_union  //并集       set_intersection(beg1,end1,beg2,end2,iterator dest)

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;void myprint(int val) {cout << val << "  ";
}
void test01() {vector<int>v;vector<int>v1;vector<int>v2;for (int i = 0; i < 10; i++) {v.push_back(i);v1.push_back(i+5);}v2.resize(v.size()+v1.size());vector<int>::iterator iEnd = set_union(v.begin(), v.end(), v1.begin(), v1.end(), v2.begin());for_each(v2.begin(), v2.end(), myprint);cout << endl;for_each(v2.begin(), iEnd, myprint);//用返回的迭代器打印输出
}
void test02() {}
int main() {test01();test02();return 0;
}
SET_DIFFERENCE

set_difference  //差集     set_difference(beg1,end1,beg2,end2,iterator dest)

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;void myprint(int val) {cout << val << "  ";
}
void test01() {vector<int>v;vector<int>v1;vector<int>v2;for (int i = 0; i < 10; i++) {v.push_back(i);v1.push_back(i+5);}v2.resize(v.size());vector<int>::iterator iEnd = set_difference(v.begin(), v.end(), v1.begin(), v1.end(), v2.begin());for_each(v2.begin(), v2.end(), myprint);cout << endl;for_each(v2.begin(), iEnd, myprint);//用返回的迭代器打印输出cout << endl;fill(v2.begin(), v2.end(), 0);for_each(v2.begin(), v2.end(), myprint);cout << endl;iEnd = set_difference(v1.begin(), v1.end(), v.begin(), v.end(), v2.begin());for_each(v2.begin(), iEnd, myprint);//用返回的迭代器打印输出cout << endl;
}
void test02() {}
int main() {test01();test02();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/701960.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

霍廷格电源 Tru plasma DC3030 通快DC3040 MF3030

霍廷格电源 Tru plasma DC3030 通快DC3040 MF3030

根据后端返回下拉请求地址,前端动态请求拿到下拉数据渲染

完整代码如下&#xff1a; <template> <!-- 资源列表页 --> <div> <div> <i click"$router.go(-1)" style" color: #409eff; cursor: pointer; margin-right: 5px; font-size: 18px; " class"el-icon-back" ><…

读人工智能时代与人类未来笔记03_演变

1. 演变 1.1. 每个社会都找到了属于自己的一套适应世界的方法 1.1.1. 适应的核心&#xff0c;是有关人类心智与现实之间关系的概念 1.1.2. 人类认识周围环境的能力 1.1.2.1. 这种能力通过知识获得&#xff0c;同时也受到知识…

快速上手并行执行——《OceanBase 并行执行》 系列 7

并行执确实是一个涵盖多个层面的复杂主题&#xff0c;它需要投入一定的时间和精力来深入理解&#xff0c;才能充分掌握其功能。为了帮助初学者更快地掌握并行执行的技巧&#xff0c;我们提供了这份Quick Start&#xff0c;它适用于 OceanBase 3.1版本及以上的版本。虽然这里所…

专业PDF编辑软件Acrobat Pro DC 2022 for Mac中文版下载

Adobe Acrobat Pro DC 2022是一款PDF处理的软件&#xff0c;能够辅助MAC的用户进行PDF的各种文件上的操作&#xff0c;对于用户而言它以极为优秀和卓越的PDF体验来让用户使用起来更为的轻松一些&#xff0c;对于用户而言这款Adobe Acrobat Pro DC 2022绝对是Mac上面最佳的PDF工…

项目组GIT操作规范

分支规范 在开发过程中&#xff0c;一般会存在以下几种分支&#xff1a; main分支(master) master为主分支&#xff0c;也是用于部署生产环境的分支&#xff0c;一般由 dev 以及 fixbug分支合并&#xff0c;任何时间都不能直接修改代码。dev分支 develop 为开发分支&#xff…

C++ | Leetcode C++题解之第89题格雷编码

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> grayCode(int n) {vector<int> ret(1 << n);for (int i 0; i < ret.size(); i) {ret[i] (i >> 1) ^ i;}return ret;} };

嵌入式学习——Shell(流指针、文件读写函数)——day20

1. 标准IO和文件IO的区别 1. 标准IO是一种有缓存的IO形式&#xff08;接收了一部分内容后给到linux内核中&#xff09; 2. 文件IO是一种没有缓存的IO形式&#xff08;即刻交给linux内核&#xff0c;及时性&#xff09; 3. 标准IO是库函数,库函数可以在Windows和Linux系统中都能…

Linux下Code_Aster源码编译安装及使用

目录 软件介绍 基本依赖 其它依赖 一、源码下载 二、解压缩 三、编译安装 四、算例运行 软件介绍 Code_aster为法国电力集团&#xff08;EDF&#xff09;自1989年起开始研发的通用结构和热力耦合有限元仿真软件。Code_aster可用于力学、热学和声学等物理现象的仿真分析&…

OV通配符/泛域名SSL证书怎么获取和安装

OV通配符/泛域名SSL证书的获取和安装主要可以分为以下几个步骤&#xff1a; 一、获取证书 1. 选择服务商 选择一个提供OV通配符SSL证书的服务商&#xff0c;例如JoySSL。 2. 提交申请 在服务商网站上选择OV通配符SSL证书产品&#xff0c;填入基础信息&#xff0c;如公司名…

下单制造fpc的工艺参数

FPC工艺简介 - 百度文库 (baidu.com) FPC工艺参数 - 豆丁网 (docin.com) FPC柔性线路板的主要参数.ppt (book118.com) 捷多邦&#xff1a; 华秋&#xff1a; 背胶&#xff1a; FPC板背胶是可以粘接在光滑表面的一种薄型胶带&#xff0c;可以在狭小以及光滑的表面上用来提供高…

[蓝桥杯]真题讲解:抓娃娃(思维+二分)

[蓝桥杯]真题讲解&#xff1a;抓娃娃&#xff08;思维二分&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;抓娃娃&#xff08;思维二分&#xff09;&#xff09; 二、正解代码 1、C #include<bits/stdc.h> #d…