自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

...博客

toBug

  • 博客(19)
  • 收藏
  • 关注

原创 C++17:std::variant/std::optional/std::any设计

文章目录前言稍微总结std::variant动机和设计内部实现boostSTLstd::optional动机和设计内部实现boostSTLstd::any动机和设计转换内部实现boostSTL前言2021年了。现在回顾一下c++17标准中的std::variant/std::optional/std::any三个库是怎么实现的。稍微总结这三个库基本都是实现可选语义:std::optional:存有T或者不存有值std::any:存有任意类型值(可以看作带类型信息的void*)std::var

2022-01-26 15:52:59 982

原创 C++23:std::execution/unifex导读

文章目录分析导航一些解读介于翻译工作或标准文档理解困难,特开一篇导读。分析导航目前std::execution的技术分析中文博客中,来自purecpp的IndignantAngel(他也有知乎号)的解读比较丰富。西方有木焉也有一些文章。以上怎么都是腾讯游戏部的一些解读...

2021-08-20 14:52:23 1662

翻译 unifex:C++现代异步模型先导

成为C++23的标准[std::execution](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0443r13.html)将带给C++一个modern asynchronous model。本文将翻译[libunifex](https://github.com/facebookexperimental/libunifex/blob/master/doc/concepts.md)文档并梳理代码结构。**译注:下文的英文单词Concept

2021-08-20 14:43:48 1499 6

原创 音乐处理原理第二章:信号傅里叶分析-补充

一些练习采样频率Fs=1/采样周期T采样频率F_s = 1/采样周期T采样频率Fs​=1/采样周期T计算以下STFT的时间分辨率,频率分辨率和那奎斯特频率Fs=22050Hz,N=1024,H=512F_s=22050\mathrm{Hz}, N = 1024, H = 512Fs​=22050Hz,N=1024,H=512Fs=48000Hz,N=1024,H=256F_s = 48000\mathrm{Hz}, N = 1024, H = 256Fs​=48000Hz,N=1024,H=

2021-08-17 15:30:00 251

原创 音乐处理原理第二章:信号傅里叶分析

标题简述傅里叶变换模拟信号波形函数相似傅里叶变换的定义复数的极坐标表达傅里叶变换的复数定义信号和信号域傅里叶变换离散傅里叶变换短时傅里叶变换简述傅里叶变换模拟信号波形函数通式:f(t)=Asin(2π(ωt−φ))f(t) =Asin(2\pi(\omega t - \varphi))f(t)=Asin(2π(ωt−φ));其中AAA是振幅,ω\omegaω是频率, φ\varphiφ是相位。为了方便研究,我们研究一段很小时间段内声音模拟信号,一般我们认为这一小段波形的振幅大致是相等,即功率相等。此

2021-08-12 13:28:00 1097

原创 音乐处理原理第一章:音乐表示

Fundamentals of Music Processing Audio, Analysis, Algorithms, Applications. Meinard Müller 学习笔记乐谱表示符号表示MIDI表示模拟敲击电子琴状态:每按一个键可以用音符编号,按键速度,midi音符编号:0 ~ 127的整数,总共128个音符,表示C0 ~ G#9之间音级。计分表示MusicXML光学音乐识

2021-08-08 14:37:15 1037 1

翻译 梳理Sox音频效果

分类音质/滤波器生成音量/音级编辑混合音高/结构母带处理专用过滤器/混合器效果分析其他效果底层信号处理音质/滤波器生成音量/音级编辑混合音高/结构母带处理专用过滤器/混合器效果分析其他效果底层信号处理...

2021-08-05 10:50:53 1206

原创 socket网络库设计——muduo观后感

文章目录对《muduo》封面提出疑问的一些解答网络库设计思路代码复用事件处理模型Reator vs. Proactor连接模型并发模型多线程安全主流语言网络库实现思路C/C++C#/JavaGolang/JavaScript/Lua/python...对《muduo》封面提出疑问的一些解答TCP协议真的有所谓的“粘包问题”吗?该如何设计消息帧的协议?又该如何编码实现分包才不会掉到陷阱里?TCP本身不存在“粘包问题”,因为TCP是基于字节流的协议,没有所谓的“包”。实际上“粘包问题”是上层协议消息

2021-07-06 15:29:35 467

原创 VS2019编译安装 FFmpeg

文章目录前言准备VS2019配置msys2环境配置添加执行路径添加LIB路径添加INCLUDE路径前言在我看了雷神的博客之后,便开始我的ffmpeg开发之旅,然后发现雷神的Windows开发环境教程提供的网络链接竟然被墙了。于是我得开始手动编译ffmpeg静态库之旅 大坑。于是我在ffmpeg官网里面找到一篇古老的基于MSVC编译ffmpeg教程。下面我将展示如何使用VS2019编译。准备Windows10VS 2019 Communitymsys2 (无需使用MinGW)下载完msys

2021-06-03 14:59:54 1167

原创 C++ 复制/移动语义学

文章目录默认构造函数机制返回值优化RVO实验平台:VS2019默认构造函数机制在类用户没有给类显式声明默认构造函数时,编译器只有在以下四种情况给类合成默认构造函数1:类成员有显式构造函数基类有显式构造函数(或基类成员有显式构造函数)类有虚函数(或基类有虚函数)虚继承基类简单来说:保证有构造函数的成员一定能执行他们的构造函数进行初始化(例类成员包含string成员,那么编译器一定保证string成员可以成功初始化);保证虚表成功生成。即便如此,对于类内不带有构造函数的成员(内置类

2021-03-17 11:13:04 605

原创 记录JavaScript this机制

ES6带来了箭头函数。本以为它是匿名函数的语法糖,于是就掉进了js的大坑里~

2021-02-04 14:30:45 151

翻译 Object-Oriented vs. Functional Programming第四章

Conclusions面向对象语言vs函数式语言程序语言演变面向对象语言vs函数式语言在本报告中,我们已经讨论了许多函数式编程和现有的面向对象设计原则的关系。这些风格差异并没有人们认为的那么大。函数式编程强调通过高阶函数重用和组合行为,和不变性的数据结构也毫无疑问地可以增强我们代码的安全性,而在面向对象代码中也同样支持这些特性,一般能够获得从中益处的通常是这两种方式。我们总是想让代码编写变得更...

2019-05-29 22:01:38 240

翻译 Object-Oriented vs. Functional Programming第三章

Design Patterns

2019-05-28 20:46:42 267

翻译 Object-Oriented vs. Functional Programming第二章

SOILD Principleslambda式SOLID原则单一功能原则开闭原则抽象lambda式SOLID原则SOLID原则是设计面向对象程序的五大基本原则:单一功能(Signgle responsibility)、开闭原则(Open/closed)、里氏替换(Liskov substitution)、接口隔离(Interface segregation)、依赖反转(Dependency i...

2019-05-07 19:07:35 193

翻译 Object-Oriented vs. Functional Programming第一章

Lambdas:Parameterizing Code by Behavior为什么我需要学习Lambda表达式?Lambda表达式的基础方法引用总结为什么我需要学习Lambda表达式?在往后的两个章节,我们将深入讨论函数式编程和面向对象编程之间的联系,在此之前,我们先讨论一下基本概念。我们将探讨一组函数式编程的关键特征:lambda表达式和方法引用。我们还将探讨一种思维上的改变,这种改变也...

2019-04-01 09:45:42 239

原创 从单例模式讲起

文章目录从单例模式讲起单例模式1. 意图2. 动机3. 适用性4. 优点5. 实现RAII(Resource Acquisition Is Initialization)1. 值语义2. Rule of Three/Tow/Five/Zero不可变对象1. Risks of mutation2. 可变方法(Mutating method)和迭代器(Iterator)3. Useful immu...

2019-01-09 13:16:30 274

翻译 读者-写者问题

目录读者-写者基本解法写者优先解法鉴于我在csdn都没找到标准的Readers-Writers Problem的解法,由此写这份blog并指出搜索首页那几篇解决办法不足之处。读者-写者基本解法基本解法是读者优先解法允许多个读者读读写互斥,写者之间互斥typedef int semaphoresemaphore mutex = 1, w =1;int readcount = 0;...

2018-12-10 16:29:11 763

原创 Windows下VS2015编译caffe

目前我所见的Windows下编译caffe都是用VS2013。但既然现在BVLC的windows版本的caffe可以支持VS2015编译,那么就不勉强自己再去下个VS2013来特地编译caffe。现在就开始讲如何在VS2015编译caffe的具体过程。先链接官方的github:https://github.com/BVLC/caffe/tree/windows一:准备工作文

2016-12-16 21:42:47 20841 28

原创 Bresenham算法

Bresenham算法是一系列算法。 算法核心思想:已知当前点坐标及曲(直)线方程,递推下一个(x+1)点的y坐标(或者(y+1)点的x坐标)。抛弃使用三角函数计算坐标,提高数据重用率。1.DDA画线算法 核心:直线方程y=k*x+b; 前一个坐标和下一个坐标的关系。 xn= x(n-1)+1; yn=y(n-1)+k;void DDALine(int x0,int y0,int xEnd

2015-11-21 23:08:44 2392

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除