C++ String类常用——元素删除与添加
C++ String类常用——元素删除与添加删除选定位置的字符在 C++ 的 string 类中,要删除一个字符串中的特定字符,可以使用以下方法之一:
方法一:使用 erase 函数可以使用 erase 函数来删除 string 中的一个或多个字符。具体来说,可以指定要删除的起始位置和要删除的字符数目。
12345678910111213#include <iostream>#include <string>using namespace std;int main() { string str = "Hello, World!"; // 删除字符串中的一个元素 str.erase(7, 1); // 从位置7开始删除1个字符 cout << str << endl; // 输出结果为 "Hello World!" return 0;}
方法二:使用 substr 函数拼接子字符串另一种方法是使用 substr 函数来拼接字符 ...
单片机笔记
概述学习目标
预备知识
单片机:单片微型计算机
CPU时序: 单片机内的取指、分析、执行等各种操作都是在一系列时钟脉冲控制下进行的,而各脉冲在时间上是有先后顺序的,这种顺序就称为时序。
1.1 ARM概述1.1.1 ARM 简介
ARM两个显著特点:
ARM既是一个公司的名称,也是一类微处理器的通称。
由苹果电脑,Acorn电脑,VLSI技术(公司)合资,1990年成立于英国剑桥,主要出售芯片设计技术的授权。
ARM既是一种技术的名称,也是一种商业思想/模式。
ARM Cortex-M3
ARMv7内核处理器
简称CM3
1.1.2 ARM 的RISC体系结构
其中RISC与CISC各有优势
到目前为止,RISC 体系结构还没有严格的定义,一般认为,RISC 体系结构应具有如下特点:
指令格式长度固定、归整、简单、基本寻址方式有 2~3 种。
使用单周期指令,便于流水线操作执行。
大量使用寄存器,数据处理指令只用寄存器,访问存储器用加载/存储指令
1.1.3 ARM 的各种构架版本
学习的是ARMv7
采用了Thunmb-2技术 ...
雷达演讲资料收集
第零章 绪论传感器定义与作用定义
广义: 传感器是一种能把特定的非电量信号(物理量、化学量、生物量等)按一定规律转换成某种便于处理和传输的另一种物理量(一般为电量) 的装置。
狭义:能把外界非电信息转换成电信号输出的器件
国家标准(GB7665—87) 对传感器(Sensor/Transducer)定义是: 能够感受规定的被测量并按照一定规律转换成可用输出信号的 器件和装置,通常由敏感元件和转换元件组成
组成传感器一般由敏感元件,转换元件,测量电路组成
核心部分是转换元件,决定传感器的工作原理。
转换元件不一定需要
习题
第一章1.1 传感器静态特性可用用求导来界定动态\静态信号
1.1.1静态特性方程$$Y=f(X)$$
一般不是非线性的,所以可以用多项式表示$$Y=a_0+a_1X+a_2X^2…..\a_0–零位输出$$
1.1.2静态特性校准曲线
1.1.3静态特性指标P24-57
1)线性度校准曲线与拟合曲线中最大的差值除以量程
就是说最大差距与占量程的多少
不同的拟合方法线性度也不一样
越小越好
差动法
利用两个传感器进行差动测量,就 ...
05标题栏与菜单栏
标题栏与菜单栏渲染标题栏与菜单栏
标题栏和菜单栏分别位于最上与最下,浮动在电子书上方,有对应的图标
引入图标我们在之前已经把图标文件放入了fonts文件夹下,在页面中可以直接引用<spen class="icon-back"></spen>
标题栏层级:
12345678910111213141516<div class="title-wrapper"> <div class="left"> <spen class="icon-back icon"></spen> </div> <div class="right"> <div class="icon-wrapper"> <spen class="icon-cart icon"></spen> ...
04epub电子书渲染
epub电子书渲染epubjs的核心工作原理解析
epub电子书会通过epubjs生成一个book对象
bookrenderTo方法
Rendition:负责渲染
Theme:负责主题
Location:负责定位,如进度条
Navigation:提供电子书目录
电子书解析和渲染创建Ebook.vue先在src中创建Ebook.vue文件,用于渲染电子书阅读器
导入epubjs组件在index.js中导入epubjs组件,并且重定向到Ebook.vue
12345678910111213141516171819import Vue from 'vue'import Router from 'vue-router'import Ebook from '@/Ebook'Vue.use(Router)export default new Router({ routes: [ { path: '/', redirect: '/ebook ...
03开发准备工作
开发准备工作icon图标准备
项目图标文件会在src/assets/styles目录下,assets是vue项目中存放项目的静态资源文件,如图片、字体等的文件夹。
图标生成把整理好的图标通过icomoon网站生成demo,再插入到项目文件夹中,下载好的文件如下:
打开demo可以看到生成情况
导入
将fonts文件夹粘贴到src/assets/styles目录下
style.css改名为icon.css粘贴到src/assets目录下
viewport属性配置
为了避免手机上用户缩放误触
viewport用来设置用户在手机上的可视区域
width=device-width:指定viewport宽度为设备宽度,initial-scale=1.0:指定默认缩放比例为1:1
通过maximum-scale和minimum-scale限定屏幕缩放比例为1:1通过user-scalable限制用户对屏幕进行缩放
在index.html文件中找到viewport属性,添加
1maximum-scale = 1.0, ...
02环境配置过程与问题
环境配置过程与问题Vue配置流程nvm -> Node.js + npm -> Vue CLI
nvm是什么?nvm(node.js version management),是一个node.js的版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。
直接安装node也行,但是vue框架中有不少项目对应的node版本会有不同,而且在切换项目时也可能改变,所以尽量还是用nvm来管理nodejs的版本
安装node安装版本
ps:这有个坑,要留意版本号,与后续开发过程中的框架版本需要对应
检查原来有无Node
方法:
在 Windows 的开始界面找Node.js的卸载程序
在 Windows 上,使用 “添加或删除程序” 功能来卸载 Node.js。
直接找到Node.js的文件夹全部删除
下载nvm
github:https://github.com/coreybutler/nvm-windows/releases
推荐下载带有setup的安装版,其他版本可能需要配置
安装没有特别需要注意的,一路ne ...
01搭建Vue脚手架过程与问题
搭建Vue脚手架过程与问题搭建流程
安装Node.js和Vuejs环境
通过vue init 搭建Vue脚手架
通过VSCode打开项目,使用npm run dev启动项目
补充需要的依赖包:
node-sass
sass-loader
epubjs
webpack脚手架搭建
Webpack是一个现代化的静态模块打包工具。它是一个构建工具,用于将各种资源,如JavaScript、CSS、图片等,打包成一个或多个静态资源文件,以便在浏览器中加载和使用。Webpack提供了强大的模块化管理能力,可以将项目中的所有模块(包括JavaScript模块、CSS模块、图片等)视为一个整体,通过各种配置和插件来对这些模块进行处理和优化,最终生成符合生产环境需求的静态资源文件。
初始化项目进入你想要创建项目的目录,并使用vue create命令来创建新项目
1vue create my-project
启动开发服务器项目创建完成后,进入项目目录,并启动开发服务器。
12cd my-projectnpm run serve
这样,你就可以在浏览器中访问http://localhost:80 ...
memset()函数对数组赋值问题
memset()函数介绍首先来看函数原型
1void *memset(void *str, int c, size_t n)
解释:c实际上传入的应该是一个字符,占用1字节,根据str的地址,把c复制n次。
作用:是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
头文件:C中#include<string.h>,C++中#include<cstring>
使用方法与问题0的情况12int dp[];memset(dp,0,sizeof(dp));
int类型的变量一般占用4个字节,对每一个字节赋值0的话就变成了“00000000 00000000 000000000 00000000” (即10进制数中的0)
1的情况1memset(dp,1,sizeof(dp));
这样可能会认为让整个dp数组里的每一个int变成1,其实不然。
在计算机中,1字节=8比特,就是8位二进制。char类型1字节,用8位二进制就可以表示,int类型8字节,用32位二进制表示。
以上代码执行后,dp数组的内容为 0 ...
万能头文件bitsstdc++的优缺点
1<bits/stdc++.h>
C++中支持的一个几乎万能的头文件,几乎包含所有的可用到的C++库函数。在我们写代码的过程中基本上只需要写这一个文件就能进行大部分编程,那么它真的是程序员梦寐以求的头文件嘛?
我的理解是:并不是。它包含大量不需要的库的头文件,更适合在在线 OJ 比赛中使用,不过在国内 OJ 中,POJ、HDU 不支持这个函数,其他国外的 OJ,还有台湾的 OJ 都支持,CF,Topcoder也都支持。然而,在具体的软件工程的开发中,应该减少包含 <bits/stdc++.h>,控制编译时间和代码大小。
优点:
1、在竞赛中节约时间
2、减少了编写所有必要头文件的工作量
3、对于使用的每个函数,不用记住GNU C++的所有STL
缺点:
1、不属于GNU C++库的标准头文件,在部分情况下可能会失败
2、使用它将包含许多不必要的东西,并增加编译时间
3、这个头文件不是C++标准的一部分,因此是不可移植的,应该避免
4、编译器每次编译翻译单元时都必须实际读取和分析每个包含的头文件,应该减少这类头文件的使用