被抄袭声明

我(受害者)的博客主页: ChuckieZhu的博客_CSDN博客-MATLAB,Python,Django领域博主 抄袭者(施害者)博客主页: 洋洋菜鸟的博客_CSDN博客-python实例,数学建模,python基础领域博主 问题说明: 他对我的MATLAB入门系列文章大量抄袭,图片文本大量复制,我已经联系人工客服,希望工作人员能对他抄袭的文章进行删除处理。 被抄袭一: 我的文章: MATLAB使用教程(二)——在文件中编程——新手来看_matlab只能运行具有有效名称的文件_ChuckieZhu的博客-CSDN博客 他的文章: 19、在文件中编程_matlab在哪写代码_洋洋菜鸟的博客-CSDN博客 涉及内容: 大段文本粘贴,所有图片都是复制的,甚至最过分的,里面有我名字的图片他都截图直接用,我真的是无语住了: 被抄袭二: 我的文章: MATLAB新手简明使用教程(八)——高级积分运算、二重积分——新手来看,保证看懂_matlab定积分填颜色_ChuckieZhu的博客-CSDN博客 他的文章: MATLAB基础教程(9)——高级积分运算、二重积分_matlab二重积分_洋洋菜鸟的博客-CSDN博客 涉及内容: 几乎全文复制粘贴。明眼人一看就知道我被抄了。 他的文章太多,我也懒得一篇一篇找了,只举报这两篇网友提供给我的文章。 非常感谢各位网友记得我这个鸽王,非常感谢你们帮我维权!!非常感谢。 已经提交人工客服: 后续更新: CSDN真高效。 再次感谢告诉我别人抄袭的朋友们!

根据实体excel导入导出百万数据,可修改表头名称

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 表格导入导出实现效果展示根据实体类导出模板读取表格数据导出数据为excel进阶:修改表格导出的列头 controller示例工具类测试实体实体注解maven依赖 表格导入导出实现效果展示 根据实体类导出模板 所有对excel都是根据实体类进行操作 根据实体导出的excel模板展示 读取表格数据 读取结果返回,和表格上传数据一致 导出数据为excel 也支持将已有的数据导出为表格 进阶:修改表格导出的列头 部分情况,表头需要为中文,可以使用注解,对表格进行标注,导出的模板和导出的数据列头就是注解的内容了 controller示例 一下示例代码实现了表格模板导出、数据导出、数据读取和百万数据读取 package com.mabo.controller; import com.alibaba.fastjson.JSONArray; import com.mabo.entity.ChatInfo; import com.mabo.util.ExcelHSSFUtil; import com.monitorjbl.xlsx.StreamingReader; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.util.IOUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.io.File; /** * TODO your comment * * @author Yujiaqi * @date 2020/12/2 19:20 */ @Slf4j @RestController @RequestMapping("

adb 运行 rpmbd

要在设备上运行 rpmbd,您需要使用以下步骤: 1. 首先,确保您已经安装了 ADB 工具,如果您没有安装,请先下载并安装 ADB 工具。 2. 然后打开一个终端窗口(或命令行窗口),并通过以下命令将设备连接到计算机: adb connect 设备IP地址 或者USB连接Android设备 3. 接下来,使用以下命令将设备上的 rpmbd 程序上传至计算机: adb pull /usr/bin/rpmbd 4. 然后,使用以下命令将 rpmbd 程序移到设备上: adb push rpmbd /usr/bin/rpmbd 5. 最后,使用以下命令在设备上启动 rpmbd: adb shell rpmbd 这样,您就可以在设备上运行 rpmbd 程序了。 请注意,这些命令可能因设备型号,操作系统版本和设备状态而有所不同,因此请仔细阅读相关文档和指南以确保正确执行。 示例运行: rpmbd /dev/mmcblk1rpmb rpmbd /dev/mmcblk1rpmb 是一个命令,用于启动 rpmbd 程序并指定要读取和管理的设备文件名。 在这种情况下,它指的是 MMC 存储器上的 rpmb 分区,其设备文件名为 /dev/mmcblk1rpmb。 这个命令可以用于在 Android 设备或嵌入式系统上管理安全存储器。 rpmb 分区通常用于存放加密密钥和其他敏感信息,以确保其在设备上安全存储,并且不会被未经授权的应用程序或用户访问。 需要注意的是,这个命令的执行需要管理员权限。如果没有足够的权限, 需要通过 su 命令切换到 root 用户或作为管理员用户登录以获取访问权限。 ChatGPT链接 https://chatgptmirror.com?share=2CFBMU

React State && 事件处理 Event&& 组件通信

React 基础知识 State State 状态 import React, { Component } from "react"; export default class StateCopm extends Component { /* * 记住了: * state只能在当前组件中定义,也只能在当前组件中修改 * 实例属性定义形式 ! 构造函数定义形式 - 推荐 */ constructor(props) { super(props); this.state = { info: "李大傻蛋" }; } // state = { // name:'lishanyu' // } changeState = props => { /* ! 1. 事件处理程序我们是直接定义为实例方法 ! 2. 事件处理程序我们建议写成箭头函数 - this指向不改变 */ // * 点击按钮改变状态 /* ! 1.

安装Centos7系统

1.网址 http://www.centos.org/ 2.镜像版本 DVDISO:标准镜像 Everything:完整版安装光盘 NetInstall:网络安装镜像 光碟文件大小有4Gb,若复制到fat32U盘必须分割成2个。 一、网络设置: 1)图形化界面设置: init5 (图形界面) a.自动获取 ifconfig(ip 地址),如果enoxxxx:物理网卡,没有ip地址,则虚拟机系统ping不通笔记本网卡。 系统工具 -》 设置 -》 网络(有线默认关闭的,设置为开启) ping 域名的方法,可以解析是否可以上网,还有就是浏览器直接打开。 b.手动设置 添加配置,ipv4,dns设置与网关ip地址一样。 2)命令行设置 a、 init3 关闭图形化界面来到命令行界面 b、使用root权限用户,其他用户可能设置不了。 c、nmtui的命令,设置网卡。 二、搭配远程连接服务器软件使用SecureCRT(虚拟机用NAT模式连接外网) 1、打开物理机的VMNET8,将本地连接设置共享到VMNET8 2、在虚拟机中激活网卡,并关闭防火墙和Selinux(参考上学期实验c1),确认可以ping外网(比如www.baidu.com) 3、在物理机中运行SecureCRT quick connect hostname :192.168.137.2 root pass: 4、设置自己的终端界面 options->application -> font -> 新宋体(大小、字符集 gb2312) charactor utf-8(不选汉字显示不了) envalation lulix 背景改变成黑色。(黑底黄字) 三、虚拟机的快照使用 产生快照,系统会回到产生快照的时候。 在实际使用的时候要慎重使用,虚拟机-》快照 (使用快照/恢复快照) 四、目录与文件的操作。 1、pwd 查看当前所处路径(/root 一般当前所处的路径,若不是,cd /root) 2、touch a.c 创建 a.c文件 3、ls 查看文件 4、rm a.c 删除a.c文件

机器学习—支持向量机

练习5:支持向量机 介绍 在本练习中,我们将使用支持向量机(SVM)来构建垃圾邮件分类器。 在开始练习前,需要下载如下的文件进行数据上传: data.tgz -包含本练习中所需要用的数据文件 其中: ex5data1.mat -数据集示例1ex5data2.mat -数据集示例2ex5data3.mat -数据集示例 3spamTrain.mat -垃圾邮件训练集spamTest.mat -垃圾邮件测试集emailSample1.txt -电子邮件示例1emailSample2.txt -电子邮件示例2spamSample1.txt -垃圾邮件示例1spamSample2.txt -垃圾邮件示例2vocab.txt -词汇表 在整个练习中,涉及如下的必做作业,及标号*的选做作业: 高斯核的实现--------(30分)数据集示例3的参数—(30分)实现垃圾邮件过滤----(40分)试试你自己的电子邮件* 1 支持向量机 我们将从一些简单的2D数据集开始使用SVM来查看它们的工作原理。 然后,我们将对一组原始电子邮件进行一些预处理工作,并使用SVM在处理的电子邮件上构建分类器,以确定它们是否为垃圾邮件。 1.1 数据集示例1 我们要做的第一件事是看一个简单的二维数据集,看看线性SVM如何对数据集进行不同的C值(类似于线性/逻辑回归中的正则化项)。 !tar -zxvf /home/jovyan/work/data.tgz -C /home/jovyan/work/ data/ data/emailSample1.txt data/emailSample2.txt data/ex5data1.mat data/ex5data2.mat data/ex5data3.mat data/spamSample1.txt data/spamSample2.txt data/spamTest.mat data/spamTrain.mat data/vocab.txt /vocab.txt import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sb from scipy.io import loadmat raw_data = loadmat('/home/jovyan/work/data/ex5data1.mat') raw_data {'__header__': b'MATLAB 5.

机器学习—逻辑回归

练习2:逻辑回归 介绍 在本练习中,您将实现逻辑回归并将其应用于两个不同的数据集。还将通过将正则化加入训练算法,来提高算法的鲁棒性,并用更复杂的情形来测试模型算法。 在开始练习前,需要下载如下的文件进行数据上传: ex2data1.txt -前半部分的训练数据集ex2data2.txt -后半部分的训练数据集 在整个练习中,涉及如下的必做作业: 绘制2D分类数据的函数----(3分)实现Sigmoid函数--------(5分)实现Logistic回归代价函数和梯度函数—(60分)实现回归预测函数--------(5分)实现正则Logisitic回归成本函数-------(27分) 1 Logistic回归 在该部分练习中,将建立一个逻辑回归模型,用以预测学生能否被大学录取。 假设你是大学某个部门的负责人,你要根据两次考试的结果来决定每个申请人的入学机会。目前已经有了以往申请者的历史数据,并且可以用作逻辑回归的训练集。对于每行数据,都包含对应申请者的两次考试分数和最终的录取结果。 在本次练习中,你需要建立一个分类模型,根据这两次的考试分数来预测申请者的录取结果。 1.1 数据可视化 在开始实施任何算法模型之前,最好先对数据进行可视化,这将会更加直观的获取数据特征。 现在,你需要编写代码来完成数据的绘图,显示如下所示的图形。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wWPJdcP2-1686574674578)(2-1.png)] 要点: 导入需要使用的python库,并将从文件ex2data1.txt中读取数据,并显示前5行x-y轴分别为两次考试的分数正负示例需要用不同的标记显示(不同的颜色) ###在这里填入代码### ###主要实现要点1### import numpy as np import pandas as pd import matplotlib.pyplot as plt # import matplotlib.pyplot as plt_plot path = '/home/jovyan/work/ex2data1.txt' data = pd.read_csv(path, header=None, names=['Exam 1', 'Exam 2', 'Admitted']) data.head() Exam 1Exam 2Admitted034.62366078.0246930130.28671143.8949980235.84740972.9021980360.18259986.3085521479.03273675.3443761 ###在这里填入代码### ###绘制数据散点图### positive = data[data['Admitted'].isin([1])] negative = data[data['Admitted'].isin([0])] fig, ax = plt.subplots(figsize=(12,8)) # 正向类,绘制50个样本,c=‘b’颜色,maker=‘o’绘制的形状 ax.

下载huggingface-transformers模型

为何不调用from_pretrained方法直接下载模型?而且只要联网就可用。但是 如果网络很不好,模型下载时间会很久,一个小模型下载几个小时也很常见如果换了训练服务器,又要重新下载。而且容易报错 如何调用huagging face 里的模型,例如vit 本地可以在Models - Hugging Face找到你需要的模型下载在本地进行调用。例子如下 from transformers import ViTImageProcessor, ViTModel from PIL import Image import requests url = 'http://images.cocodataset.org/val2017/000000039769.jpg' image = Image.open(requests.get(url, stream=True).raw) # 此处可以是模型名字也可以选择本地路径,本地不容易报错 image_model = 'google/vit-base-patch16-224-in21k' # image_model = ./models/vit-base-patch16-224-in21k' processor = ViTImageProcessor.from_pretrained(image_model) model = ViTModel.from_pretrained(image_model) inputs = processor(images=image, return_tensors="pt") outputs = model(**inputs) last_hidden_states = outputs.last_hidden_state 下载操作: 1打开模型页面,输入你要的模型。 点开要选择的页面选择中间选项: 下载你需要的,LFS选一个,若是pytorch就选 pytorch_model.bin,若是tensorflow就选tf_model.h5。 参考: google/vit-base-patch16-224-in21k · Hugging Face 如何优雅的从Hugging Face下载repo中的部分目录下的文件_Therock_of_lty的博客-CSDN博客

网络编程基础

网络编程 1.1 概述 计算机网络: 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路和通信设备连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 网络编程的目的: 传播交流信息,数据交换通信 想要达到这个效果需要什么: 如何准确的定位网络上的一台主机 42.242.225.253:端口号,定位到这个计算机上的某个资源找到了这个主机,如何传输数据? Java Web 网页编程 B/S TCP/IP 网络编程 C/S 1.2 网络通信的要素 如何实现网络的通信? 通信双方的地址: IP端口号 规则:网络通信的协议 TCP/IP参考模型 小结: 网络编程中有两个主要的问题 如何准确的定位到网络上的一台或者多台主机 IP ping命令一般会发四个包 PS C:\Users\kevin\Desktop> ping www.baidu.com 正在 Ping www.a.shifen.com [14.119.104.189] 具有 32 字节的数据: 来自 14.119.104.189 的回复: 字节=32 时间=38ms TTL=54 来自 14.119.104.189 的回复: 字节=32 时间=36ms TTL=54 来自 14.119.104.189 的回复: 字节=32 时间=36ms TTL=54 来自 14.119.104.189 的回复: 字节=32 时间=36ms TTL=54 14.119.104.189 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 36ms,最长 = 38ms,平均 = 36ms PS C:\Users\kevin\Desktop> 找到主机之后如何进行通信

GStreamer for Ethernet AVB

https://iamkate.com/code/binary-file-viewer/ apt-get install manpages-posix-dev 1 AVB MPEG2-TS 1.1 MPEG2-TS cip_with_sph_payload: 32-byte AVTP header + 4-byte Timestamp + 4-byte MPEG2TS header + 184-byte payload 32 bytes hdr, IEEE 1722-2016 spec 00 uint32_t subtype_data; 04 uint64_t stream_id; 12 uint32_t avtp_time; 16 uint32_t format_specific; 20 uint32_t packet_info; // big-endian MSB 16bit stream_data_length from cip_1 24 uint32_t cip_1; 28 uint32_t cip_2; 32 uint8_t cip_data_payload[0]; CIP means Common Isochronous Packet. 4 bytes MPEG2TS header

Android /system/etc/init,放到 system 分区启动

/system/etc/init 文件是 Android 设备启动时加载的服务的配置文件。 要将 init 文件放到系统分区启动,您需要进行以下步骤: 1. 首先,确保设备已 root。 2. 将您的 init 文件复制到 /system/etc 目录中。可以使用 adb 命令将 init 文件复制到设备上。例如,adb push init /system/etc/ 3. 然后,使用以下命令更改文件权限,以便 Android 可以访问该文件: adb shell chmod 644 /system/etc/init 4. 最后,需要重启设备以使更改生效。此时,Android 将在启动时加载您的 init 文件。 请注意,修改系统分区上的文件可能会使您的设备变得不稳定。 如果您不确定自己在做什么,请谨慎进行操作 ChatAI链接 https://chatgptmirror.com?share=2CFBMU

Feign接口windows启动调用正常,Linux环境调用404

1、Linux环境启动之后报错 如下: windows 是调用正常得 反复测试好几轮 还是这样 ,nacos都是注册进去得 helper-service 调用 xTIMS-Web 解决:FeignClient注解 不配置URL会出现那样问题, 配置URL之后 解决 ,不报错了,但是不合适。 底层可能还是有问题, 暂时先写死地址了,就初始化数据用一下,后续再研究

查看电脑架构

win+r+输入cmd进入命令行控制 输入echo %PROCESSOR_ARCHITECTURE% 便知道是说明架构了

个人项目总结

hdl项目总结 mapper实体类处理 fastjson使用 mysql 插入百万表 drop table if exists person; create table person ( PID int(11) auto_increment comment '编号', PNAME varchar(50), PSEX varchar(10), PAGE int(11), SAL decimal(7,2) comment 'salary', primary key(PID) ); create procedure insert_person(in max_num int(10)) BEGIN declare i int default 0; set autocommit =0; repeat set i = i+1; insert into person(PID,PNAME,PSEX,PAGE,SAL) values(i,concat('test',floor(rand()*10000000)),if(rand()>0.5,'男','女'),floor(rand()*100)+10,floor(rand()*19000)+100); until i = max_num end repeat; commit; end; call insert_person(3000000); 事务锁 lock_wait_timeout 上网查找了一下,了解到了该类问题出现的主要原因是:Mysql的 InnoDB存储引擎是支持事务的,事务开启后没有被主动Commit,导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock wait timeout ex

前端常用库 CDN

jQuery 链接: v1.9.1:https://i.mazey.net/lib/jquery/1.9.1/jquery.min.jsv2.1.1:https://i.mazey.net/lib/jquery/2.1.1/jquery.min.jsv3.1.1:https://i.mazey.net/lib/jquery/3.1.1/jquery.min.js 代码: <script type="text/javascript" src="//i.mazey.net/lib/jquery/2.1.1/jquery.min.js"></script> 英文官方文档:https://api.jquery.com/ 中文非官方文档:https://jquery.cuishifeng.cn/ Bootstrap 3.x CSS 链接:https://i.mazey.net/lib/bootstrap/3.4.1/css/bootstrap.min.css JavaScript 链接:https://i.mazey.net/lib/bootstrap/3.4.1/js/bootstrap.min.js 代码: <link type="text/css" href="//i.mazey.net/lib/bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet" /> <script type="text/javascript" src="//i.mazey.net/lib/bootstrap/3.4.1/js/bootstrap.min.js"></script> 英文官方文档:https://getbootstrap.com/docs/3.4/ 中文非官方文档:https://v3.bootcss.com/ Vue 2.x 链接:https://i.mazey.net/lib/vue/2.6.12/vue.min.js 代码: <script type="text/javascript" src="//i.mazey.net/lib/vue/2.6.12/vue.min.js"></script> 官方文档:https://v2.cn.vuejs.org/ Vuex 链接:https://i.mazey.net/lib/vuex/3.0.1/vuex.min.js 代码: <script type="text/javascript" src="//i.mazey.net/lib/vuex/3.0.1/vuex.min.js"></script> 官方文档:https://v3.vuex.vuejs.org/zh/ Layer PC 链接:https://i.mazey.net/lib/layer/layer.js 代码: <script type="text/javascript" src="//i.mazey.net/lib/layer/layer.js"></script> 非官方文档:https://layui.gitee.io/v2/docs/modules/layer.html Mobile 链接:https://i.mazey.net/lib/layer/mobile/layer.js 代码: <script type="text/javascript" src="//i.mazey.net/lib/layer/mobile/layer.js"></script> 非官方文档:https://www.layui.site/layer/mobile/ Swiper CSS 链接:https://i.mazey.net/lib/swiper/9.3.2/swiper.min.css JavaScript 链接:https://i.mazey.net/lib/swiper/9.3.2/swiper.min.js 代码: <link type="text/css" href="//i.mazey.net/lib/swiper/9.3.2/swiper.min.css" rel="stylesheet" /> <script type="text/javascript" src="

chatgpt赋能python:Python中如何删除代码:从基础知识到高级技巧

Python中如何删除代码:从基础知识到高级技巧 前言 在Python开发中,我们经常需要编辑代码,有时需要添加新的代码行,有时需要修改已有的行,甚至还需要删除一些代码。删除代码是一种常见的操作,但对于初学者来说,可能会有些困惑。 在本文中,我们将介绍Python中删除代码的基本知识和高级技巧,帮助您更好地掌握这种操作。 基本知识:删除单行和多行代码 Python中删除单行代码很简单。只需要将要删除的行选中,然后按下delete或backspace键。如果您使用的是交互式Python环境(REPL),那么可以直接使用Ctrl+D(Unix/Linux/MacOS)或Ctrl+Z(Windows)快捷键来退出当前会话。 如果要删除多行代码,可以使用代码编辑器中的多行编辑功能。通常情况下,您只需要按住Alt键(Windows/Linux)或Option键(MacOS)并用鼠标选择要删除的行,然后按下delete或backspace键即可删除。 高级技巧:使用高效的删除技术 除了基本操作之外,Python中还有一些高级技巧可以让您更加高效地删除代码。下面列出几个常用的技巧: 使用代码编辑器的搜索和替换功能 如果您要删除大量的相似代码行,可以使用代码编辑器的搜索和替换功能。只需要将要删除的代码行复制到剪贴板中,然后按下Ctrl+F(Windows/Linux)或Command+F(MacOS)快捷键调出搜索框,在搜索框中粘贴代码,然后按下替换按钮即可完成替换。 使用版本控制系统 如果您已经使用了版本控制系统(如Git),可以使用版本控制系统来删除代码。只需要使用命令行工具进入代码库目录,然后使用Git命令(或其他版本控制系统的命令)删除不需要的代码即可。在这种情况下,您可以轻松地恢复代码,避免因删除错误导致的潜在风险。 使用代码折叠功能 大多数代码编辑器都支持代码折叠功能,可以将不需要的代码行折叠起来。只需要将鼠标放在代码行左侧的小箭头上,然后单击即可折叠,再次单击则展开。 结论 Python中删除代码是一种很常见的操作,但也有许多技巧可以帮助您更加高效地删除代码。无论是删除单行代码还是大量的代码行,您都可以使用代码编辑器的基本功能或高级技巧来完成。当然,为了避免因误删除导致的问题,我们建议您使用版本控制系统来记录每个代码更改,以便在必要时回滚代码。 最后的最后 本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。 对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。 🧡AI职场汇报智能办公文案写作效率提升教程 🧡 专注于AI+职场+办公方向。 下图是课程的整体大纲 下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具 🚀 优质教程分享 🚀 🎄可以学习更多的关于人工只能/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦! 学习路线指引(点击解锁)知识定位人群定位🧡 AI职场汇报智能办公文案写作效率提升教程 🧡进阶级本课程是AI+职场+办公的完美结合,通过ChatGPT文本创作,一键生成办公文案,结合AI智能写作,轻松搞定多场景文案写作。智能美化PPT,用AI为职场汇报加速。AI神器联动,十倍提升视频创作效率💛Python量化交易实战 💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。

vector 迭代器失效问题

vector 迭代器失效 迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装,比如:vector的迭代器就是原生态指针T* 。因此迭代器失效,实际就是迭代器底层对应指针所指向的空间被销毁了,而使用一块已经被释放的空间 , 造成的后果是程序崩溃(即如果继续使用已经失效的迭代器,程序可能会崩溃)。 对于vector可能会导致其迭代器失效的操作有: 指定位置元素的删除操作–erase VS下的 #include <iostream> using namespace std; #include <vector> int main() { int a[] = { 1, 2, 3, 4 }; vector<int> v(a, a + sizeof(a) / sizeof(int)); int sz = v.capacity(); // 使用find查找3所在位置的iterator vector<int>::iterator pos = find(v.begin(), v.end(), 3); // 删除pos位置的数据,导致pos迭代器失效。 v.erase(pos); cout << *pos << endl; // 此处会导致非法访问 return 0; } erase删除pos位置元素后,pos位置之后的元素会往前搬移,没有导致底层空间的改变,理论上讲迭代器不应该会失效,但是:如果pos刚好是最后一个元素,删完之后pos刚好是end的位置,而end位置是没有元素的,那么pos就失效了。因此删除vector中任意位置上元素时,vs就认为该位置迭代器失效了。 与vector类似,string在插入+扩容操作+erase之后,迭代器也会失效 #include <iostream> #include <string> using namespace std; int main() { string s("

adb 拷贝RPMBD文件 到系统分区

要将 rpmbd 文件拷贝到 Android 设备的系统分区,您可以使用 adb 命令并遵循以下步骤: 1、连接 Android 设备到计算机上,并确保您已启用开发人员选项和 USB 调试功能。 2、打开命令提示符或终端,并输入以下命令,确保您的设备已被识别: adb devices 确认设备已连接后,输入以下命令来将 rpmbd 文件复制到设备,假设 rpmbd 文件在计算机上的路径为 /path/to/rpmbd: adb push /path/to/rpmbd /system/bin/rpmbd 3、等待文件传输完成。然后,您可以通过以下命令将文件权限更改为可执行: adb shell chmod +x /system/bin/rpmbd 4、现在,您可以通过以下命令来运行 rpmbd: adb shell rpmbd /dev/mmcblk1rpmb 请注意,这需要在设备上具有 root 访问权限才能执行。如果您的设备未 root,则需要获取 root 权限才能运行 rpmbd。 AI对话: ChatGPT链接 

ELK日志收集系统简述

一、概述 (一)ELK由三个组件构成 ELK是三个开源软件的缩写,分别是Elasticsearch、Logstash、Kibana ELK 架构基本组成 (二)作用 1、日志收集 2、日志分析 3、日志可视化 (三)为什么使用ELK? 1、日志对于分析系统、应用的状态十分重要,但一般日志的量会比较大,并且比较分散。 2、如果管理的服务器或者程序比较少的情况我们还可以逐一登录到各个服务器去查看、分析。但如果服务器或者程序的数量比较多了之后这种方法就显得力不从心。基于此,一些集中式的日志系统也就应用而生。目前比较有名成熟的有,Splunk(商业)、FaceBook 的Scribe、Apache的Chukwa Cloudera的Fluentd、还有ELK等等。 二、ELK的工作流程简介 在需要收集日志的所有服务上部署Logstash,作为Logstash Agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis(消息队列缓存,避免数据丢失隐患),然后Logstash Indexer将日志收集在一起再交给ElasticSearch即全文搜索服务,可以用ElasticSearch进行自定义搜索,可以通过Kibana来结合自定义搜索进行页面展示。 三、组件简介 (一)elasticsearch 1、Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。 2、它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。主要负责将日志索引并存储起来,方便业务方检索查询。 (二)logstash 1、Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。 2、一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。 3、Logstash是一个日志收集、过滤、转发的中间件,主要负责将各条业务线的各类日志统一收集、过滤后,转发给 Elasticsearch 进行下一步处理。 4、Logstash工作原理: Logstash事件处理有三个阶段:Inputs → Filters → Outputs。是一个接收、处理、转发日志的工具。支持系统日志、Webserver日志、应用日志等,几乎包含了可以抛出来的所有日志类型。 5、Input:输入数据到Logstash。 一些常用的输入为: ①File:从文件系统的文件中读取,类似于tial -f命令 ②Syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析 ③Redis:从redis service中读取 ④Beats:从filebeat中读取 6、Filters:数据中间处理,对数据进行操作。 一些常用的过滤器为: ①Grok:解析任意文本数据,Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。 ②官方提供的grok表达式:logstash-patterns-core/patterns at main · logstash-plugins/logstash-patterns-core · GitHub ③Grok在线调试:Grok Debugger ④Mutate:对字段进行转换。例如对字段进行删除、替换、修改、重命名等。 ⑤Drop:丢弃一部分Events不进行处理。 ⑥Clone:拷贝Event,这个过程中也可以添加或移除字段。 ⑦Geoip:添加地理信息(为前台kibana图形化展示使用) 7、Outputs:Outputs是Logstash处理管道的最末端组件。一个Event可以在处理过程中经过多重输出,但是一旦所有的Outputs都执行结束,这个Event也就完成生命周期。 一些常见的Outputs为: ①Elasticsearch:可以高效的保存数据,并且能够方便和简单的进行查询。 ②File:将Event数据保存到文件中。 ③Graphite:将Event数据发送到图形化组件中,踏实一个当前较流行的开源存储图形化展示的组件。 (三)Kibana