avatar
文章
130
标签
58
分类
37

Home
Tags
Categories
Music
港乐Live Show
Eden Mo Blog
搜索
Home
Tags
Categories
Music
港乐Live Show

Eden Mo Blog

数据结构与算法(一):线性表、栈、队列
发表于2023-09-26|C/C++数据结构数据结构理论|数据结构与算法
数据结构导论 数据结构诞生于1968年,克努特教授《计算机程序设计技巧》中系统阐述了数据逻辑结构的概述和思想,开创了数据结构概念,甚至比C(1972)、C++(1980)等语言出现还早,编程语言只是底层工具,半个世纪过去数据结构和算法的思想经久不衰,值得记录和学习。本文回顾了两年前初识数据结构的笔记、算法记录、代码等,根据参考视频、博客等重新补充、整理,以C语言为编程语言,介绍了各自数据结构和算法。 数据 数据:一个总称,例如生产日期、身高体重 数据元素:是数据处理的基本单位,即数据的记录,例如某月某日、170kg等。 逻辑结构 集合结构:数据元素同属一个集合,一个类,散乱的装载,没有其他关系了。 线性结构:数据元素间是一对一的关系。 树形结构:从根结点出发,一对多、多对一的关系。 图形结构:复杂的网状结构,一对多、多对一、多对多关系。 存储结构 数据元素的存储结构有两种: 顺序存储结构:数据元素存放在地址连续的存储单元中,数据的逻辑关系和物理关系是一致的。 链式存储结构:数据元素被存储在存储单元中,可以连续,也可以不连续的,存在一个指针域指向下一个数据地址。 ...
C++记忆恢复集要之三:继承、多态与容器
发表于2023-09-10|CPP|C++基础
继承 类是C++封装特点的重要体现,类的继承是指从已有的基类(父类)派生出的新类(子类),是C++面向对象的第二个重要特点。类的继承写法如下: 12345678//单类继承class 子类类名:继承类型 父类类名{ ...};//多类继承class 子类类名:继承类型 父类类名,继承类型 父类类名...{...}; 1. 三种继承类型 三种继承类型:公有继承(public) 、私有继承(private)、受保护继承(protected)。 子类并不是照搬父类的成员权限,而是根据继承类型和父类的类内权限共同决定的。总结如下: 1. 父类私有权限成员:无论以何种方式继承,子类和类外均不能直接访问和操作(私有成员变量的确占用了子类的空间,但是这些变量对子类是不可见的,既然是不可见,就说不上在子类中有什么权限,所以一般要通过父类的公有函数来访问); 2. 父类受保护权限成员:公有、受保护继承时,该成员在子类权限仍为受保护权限,私有继承时在子类权限为私有权限; 3. 父类公有权限成员:公有继承时,在子类权限为公有权限;受保护继 ...
C++记忆恢复集要之二:类与对象
发表于2023-09-03|CPP|C++基础
类和对象 1. 从结构体到类 结构体: 12345678910111213141516171819#include <iostream>using namespace std;struct Person{ string name; int id; int score; void PrintInfo(){ cout<<name<<'\t'<<id<<'\t'<<score<<endl; }};int main(){ Person Eden; Eden.name="MrEason"; Eden.id=110; Eden.score=123; Eden.PrintInfo(); return 0;} 结构体和类的唯一区别:结构体默认权限是公有的,而类默认成员权限是私有的。只需声明权限即成为类的结构: 12 ...
C++记忆恢复集要之一:C++基础
发表于2023-09-01|CPP|C++基础
C++基础 1. 经典头 12#include<iostream> //预编译using namespace std; iostream是C++用于管理输入和输出的头文件,包含了在控制台、文件中输入输出的类和函数。 std是C++定义的一个命名空间,cin、cout都在此命名空间中管理,两种输出方式: 1 声明命名空间:using namespace std; 2 域解析符号: std::cout<<“hello world”<<endl; 2. 面向对象编程语言的三要素: 封装:把客观事物封装成抽象的类,而且仅让可信的类或者对象进行操作;将成员函数和成员变量封装在内部,根据需要设置访问权限。通过成员函数管理内部状态。如C语言结构体内不能定义函数,而C++可以。 继承:一个类可以继承另一个类的成员函数和成员变量,复用性大大增加。 多态:也即一个接口,多种方法;程序在运行时才决定调用的函数,是面向对象的核心概念。分为静态多态(函数重载、运算符重载)和动态多态(虚函数、纯虚函数、虚析构函数、纯虚析构函数); 3. ...
引入Aplayer后图片无法正常显示
发表于2023-08-18|网站相关|奇奇怪怪的实现
作为一款轻便的H5音乐播放器,Aplayer插件提供了很好的界面和效果,比普通的HTML播放器更加方便美观。根据官方文档完成代码框架搭建后却发现背景图片莫名不显示了。。。原来一直调试时背景图片依靠浏览器缓存所以在本地服务器运行没有消失,等真正推送在无缓存页面打开才原形毕露。检查了本地的配置没有发现什么问题,而检查服务器时发现网页渲染CSS文件首行莫名多了: 1<link rel="stylesheet" class="aplayer-secondary-style-marker" href="/assets/css/APlayer.min.css"><script src="/assets/js/APlayer.min.js" class="aplayer-secondary-script-marker"></script><script class="meting-secondary-script-marker" src= ...
外部引用JavaScript解决背景图片闪屏
发表于2023-08-07|网站相关|奇奇怪怪的实现
记录一些优化的方案,给相同问题的小伙伴参考一下。最近利用外部css文件实现了背景切换的目的,然而发现了一个小问题。每次清除缓存打开网站,需要重新加载图片,图片和图片切换之间会出现大概零点几秒的白屏。视觉上就像闪屏,等待所有图片加载完成再进行循环切换则没有该问题,猜测是网络环境影响。但尝试了不同网络、将图片压缩至500KB还是无法解决,最后完善了一下切换逻辑,效果感觉还行。 1234567891011121314#web_bg { /*background-image:初始图片路径; //可有可无,效果无太大影响*/ animation: gradientFade 60s infinite; /*一次切换时间设置 */}/*如果要增删背景图片务必修改.css文件和.js文件*/@keyframes gradientFade { 0%, 100% {background-image:图片路径1;} 25% { background-image: 图片路径2;} 50% & ...
stm32标准库开发(七):DMA数据搬运
发表于2023-08-02|MCU开发开源器件Cstm32|MCU开发
stm32标准库开发(六):ADC模数转换
发表于2023-08-02|MCU开发开源器件Cstm32|MCU开发
ADC转换原理:逐次逼近型ADC stm32的ADC转换电路是一种逐次逼近型的ADC,采用二分法估测模拟电压。原理图: 以上是一个八位的逐次逼近型ADC逻辑图,输入通道有8个,通过地址锁存器打开对应的通道使模拟电压进入比较器。这里的DAC具有参考电压ref,一般也是取供电电压VCC,0——VCC也是输入电压的范围,起始时逐次逼近(SAR)寄存器最高位为1,其余为0。 DAC根据SAR寄存器产生电压,例如初始最高位为1,其余为0,即是VCC/2,如果输入模拟电压大于参考电压,则高位置1,将第二位置1,仍然高于置1、反之置0,以此类推,SAR为8位,经过8次比较即得出该模拟电压的数字编码。 stm32的ADC逻辑设计 stm32使用的SAR是12位的,意味着其电压分辨率是4096,输出结果0——4095,输入电压范围0——3.3V,最多18个输入通道,其中16个是外部引脚输入,2个是内部信号源,分别来自内部校准电压Vrefint和温度传感器。 这里的规则组、注入组是为了同时接收多通道ADC,无需重复接收ADC请求,只要将ADC引脚需求提交,系统会按顺序转换各个通道的模拟 ...
MCU通信协议(三):UART协议
发表于2023-07-28|MCU开发MCU通信协议|MCU开发
USART和UART UART(Universal Asynchronous Receiver/Transmitter)是通用异步接收/发送器,即串口通信。 USART在UART的基础上加上同步电路(Synchronous),是目前单片机最常用的串口电路设计,允许输出同步时钟实现通信(但不能接收,不能被同步驱动,即只可作主机)。但是最常用的串口模式还是采样异步通信的方法,即UART,只有特殊场合才会使用同步电路。 UART通信特点 异步全双工的通信方式:只需要TX、RX两根数据线进行通信,双方约定波特率进行发送和接收,无需时钟线。可以弃用其中一条线转换成半双工通信。 点对点的通信协议:没有SPI、I2C、CAN从机挂载机制,仅点对点。 通信格式简单:起始位+数据位+奇偶校验位(Optional)+停止位,数据位(8/9)、停止位位数(0.5/1/1.5/2)可选,最常见是8位数据位、无奇偶校验、1位停止位。 传输距离有限、通信速率较低:常用9600bps波特率,传输距离几十米,波特率越高,传输距离越短。 电平标准 适应长线串口传输,提出几种不同电平标准,甚至 ...
stm32标准库开发(五):输入捕获
发表于2023-07-24|MCU开发开源器件Cstm32|MCU开发
1…111213
avatar
Eden
不做前端所以博客不漂亮,纯免费授权码来自公众号:摸妖猫
文章
130
标签
58
分类
37
Follow Me
公告
文章任何错误、疏漏、建议麻烦请联系博主qq邮箱2436444815@qq.com
最新文章
深入理解计算机系统CMU-15213 CSAPP(二):DataLab2025-10-08
OpenGL C++记录(二):基本渲染与着色器2025-09-30
OpenGL C++记录(一):基于MinGw的环境搭建2025-09-29
设计模式(四):组合模式、责任链模式、策略模式2025-09-23
矩阵求导2025-09-14
分类
  • C21
  • C++ Qt开发7
  • C/C++14
  • CPP24
    • C++ Generic Programming3
    • C++ boost库开发5
  • FPGA2
    • verilog2
标签
计算机图形学 格式化输出 QR分解 C++高阶 MIT 18.06 Stanford CS144 高等数学 3D目标检测 Givens变换 Effective C++ CSAPP LU分解 设计模式 ASIO异步编程 线性代数 C++ Qt SVD分解 Markdown语法 读写锁 Householder变换 网络编程 OpenGL 信号与系统 C++ SFINAF and Type Traits Git基本使用 json序列化 内存管理理论 C++11 新特性 C++ Generic Programming Linux Beast库 Private Content Linux扩容 vim使用 数值分析方法 进程与线程 拟合算法 CMake 数据库 OpenCV
归档
  • 十月 20251
  • 九月 20254
  • 八月 20256
  • 七月 20256
  • 六月 20256
  • 五月 20253
  • 四月 20254
  • 三月 20256
网站资讯
文章数目 :
130
本站总字数 :
566.3k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2023 - 2025 By Eden
框架 Nodejs|你忘掉理想 只能忙于生活吗
粤公网安备 44010602011738号|粤ICP备2023072610号
搜索
数据库加载中