自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天之彼方的博客

18年硕士毕业,还是没有工作

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

原创 python的PyQt5环境搭建

所以,用Python3.6版本的解释器就可以了。这里要改本地python版本,想到了conda。

2024-05-17 17:35:13 210

原创 windows下配置linux环境

最近wsl2的内存占用爆炸,我很烦躁,直接卸载了,想想自己windows下面使用linux的需求也就是用一下gcc grep gdb,就开始研究msys2了。1. ucrt64/bin文件夹下应该能找到gcc.exe,然后将此路径加入环境变量。先pacman -Ss搜索,再按搜出来的名字pacman -S安装。2. ucrt64.exe后可以直接运行gcc。安装cmake+ninja。

2024-01-31 11:16:23 245

原创 abseil中的微操

各种和底层相关的微操

2024-01-15 18:57:07 949

原创 哈希表的实现中一定要有链表的存在吗

需要注意的是,增加桶的数量会增加哈希表的内存消耗,因为每个桶都需要一定的存储空间。当发生冲突时,它会以一定的步长探查哈希表的下一个位置,直到找到一个空闲的位置来存储冲突的键值对。- 内存访问不连续:链地址法中链表的节点在内存中的存储位置可能是不连续的,这可能导致缓存不命中,对性能产生一定的影响。- 额外的空间消耗:链地址法需要使用额外的数据结构(如链表)来存储冲突的键值对,这会增加一定的空间消耗。- 紧凑的存储:开放地址法直接将键值对存储在哈希表中的连续位置,没有额外的指针和链表开销,节省了空间。

2024-01-15 10:48:50 401

原创 openal中使用现代C++智能指针管理ffmpeg中裸指针的用法

【代码】openal中使用现代C++智能指针管理ffmpeg中裸指针的用法。

2024-01-12 13:50:54 646

原创 fmt中几个技法

是一个 C 风格的函数,可以用于处理任意类型的内存块,而不仅限于字符数据。这种技术通常用于编译时的条件编程,通过在模板实例化期间进行类型检查和分支选择,从而根据类型特性实现不同的行为。,这意味着需要将其转换为适当的类型才能访问所找到的字节。的位置,并输出结果。是一个类型特性,用于检查给定的类型是否可以通过特定的参数列表进行构造。是 C++ 标准库中的一个函数,它用于在一段内存中搜索指定的字节值。或将其转换为其他类型的指针,以便进行进一步的操作。的不同,我们可以看到不同的构造函数被调用。

2024-01-12 11:46:41 382

原创 稀奇古怪的优化技巧

C++程序性能优化

2024-01-09 19:28:05 346

原创 谈谈 UTF-8 标准和解码的实现

unicode + utf-8 + Cpp implement

2024-01-09 15:43:30 2203 4

原创 利用std::package_task完成一个带返回值的线程池

【代码】利用std::package_task完成一个带返回值的线程池。

2024-01-09 13:42:55 427

原创 使用 std::forward 的作用---完美转发

std::forward

2024-01-09 11:49:33 1050

原创 fmt中uint128_fallback的实现分析

fmt中uint128_fallback的实现分析

2024-01-08 17:15:12 389

原创 C++中几个模板技巧(有点诡异的那种)

这个太多例子了,不细说。

2024-01-05 17:03:50 364

原创 basic_string_view的设计分析

basic_string_view分析

2024-01-05 15:55:24 353

原创 C++中几个常用的类型选择模板函数

如果编译期满足B,那么返回类型T,否则编译报错。

2024-01-05 15:33:51 1245

原创 C++11 中引入的几个属性

C++11 中引入的这几个属性平常项目不常见,突然见到可能有点陌生,我挨个列举一下。是 C++11 中引入的一个属性(attribute),用于向编译器发出警告,以确保编译器在某些情况下对函数的返回值进行检查,以避免出现可能导致错误或潜在问题的情况。当你在函数声明之前使用属性时,它会告诉编译器在调用该函数后,如果忽略了带有属性的函数的返回值,编译器会发出警告或错误。例如,考虑以下示例代码:在上面的代码中,函数被标记为,意味着它的返回值不应该被忽略。在main函数中,我们没有使用。

2024-01-05 15:21:29 900

原创 memset(this, 0, sizeof(*this))的弊端

所以在构造函数中使用memset来初始化this是比较危险的,有可能会带来内存泄露,不建议这么使用,此外,memset可能会清空虚表指针。(this,0,sizeof(*this))是一种危险的写法,它限制了一个类再也不能改动,一旦改动,就会有问题出现。执行memset时不会出现任何问题,成员变量a确实被清0了,但问题也在这里出现,我们会发现。

2023-10-19 14:32:53 204

原创 ffmpeg视频解码器的配置选项含义

lowres是结构体中的一个成员变量,用于指定编解码器的降低分辨率级别。在某些情况下,为了加快编解码的速度或减少计算资源的消耗,可以通过设置lowres参数来降低编解码器的分辨率级别。这将导致编解码器在处理视频时使用较低的分辨率,从而减少计算量。lowres常见的取值范围为0到4,其中0表示不降低分辨率级别,4表示最大程度的降低分辨率级别。需要注意的是,lowreslowres一般情况下,默认情况下不会使用lowres参数,而是使用完整的原始分辨率进行编解码。

2023-10-12 15:46:11 943

原创 ffmpeg中AVCodecContext和AVCodec的关系分析

和AVCodec是FFmpeg库中两个相关的结构体,它们在音视频编解码中扮演着不同的角色。:是编解码器上下文结构体,用于存储音视频编解码器的参数和状态信息。它包含了进行音视频编解码所需的,如编码器类型、编码参数、解码参数、输入输出格式等。每个音视频流在编解码过程中都需要一个对应的来。在解码过程中,用于接收解码后的音视频数据。在编码过程中,用于传递待编码的音视频数据。AVCodec:是音视频编解码器结构体,用于定义特定的编解码器。它包含了编解码器的类型、名称、支持的音视频格式、编解码函数等。通过。

2023-10-12 13:42:40 865

原创 视频缩放的概念整理-步长数组

单通道灰度图像:假设图像为单通道灰度图像,每个像素只有一个亮度值。步长数组 [320, 160, 160, 0] 可以对应于每行 320 字节的灰度数据,表示每行像素的亮度值。需要注意的是,即使给出了步长数组,仍然需要其他的信息才能准确描述图像的格式,如图像的宽度、高度、色彩空间、数据类型等。步长数组只是描述了每行数据的跨度,而不提供完整的图像格式信息。

2023-10-12 11:41:29 463

原创 ffmpeg的重采样计算

最近在看ffmpeg的重采样计算逻辑,有一句话没大看懂,各种请教之后,记录如下。

2023-10-12 11:18:15 503

原创 混音算法整理

音频流混音算法整理

2023-10-08 15:46:22 159

原创 SDL播放pcm无声音的原因

"fopen()"函数中的"r"和"rb"表示以只读方式打开文件,但是前者是文本模式,后者是二进制模式。在文本模式中,即使操作系统使用不同的换行符,都会被转换为’\n’进行处理。在二进制模式下,文件中的所有数据都被视为raw数据,且不进行任何的字符集转换。然后,看了看不出声的程序,是用了。

2023-10-07 16:01:05 518

原创 VS2019的SDL2项目配置

对于Windows下使用VS2019开发的选手,如何配置SDL2开发环境。

2023-09-22 14:51:42 162

原创 dll载入时发生的事情

另外,当您在这些 Windows 操作系统之一上运行某一程序时,该程序的很多功能可能是由 DLL 提供的。例如,某些程序可能包含很多不同的模块,而该程序的每个模块都包含在 DLL 中并从中分发。当 DLL 中的函数需要更新或修复时,部署和安装 DLL 不要求重新建立程序与该 DLL 的链接。模块式程序的一个示例是具有多个可以在运行时动态加载的模块的计帐程序。要导出 DLL 函数,您可以向导出的 DLL 函数中添加函数关键字,也可以创建模块定义文件 (.def) 以列出导出的 DLL 函数。

2023-08-25 16:36:53 120

原创 cmake编译时候加入git的版本号和分支名字

【代码】cmake编译时候加入git的版本号和分支名字。

2023-08-15 15:20:27 628

原创 -L和-rpath-link和-rpath

现代连接器在处理动态库时将链接时路径(Link-time path)和运行时路径(Run-time path)分开,用户可以通过-L指定连接时库的路径,通过-R(或-rpath)指定程序运行时库的路径,大大提高了库应用的灵活性。链接器ld的选项有 -L,-rpath 和 -rpath-link,看了下 man ld,大致是这个意思:-L: “链接”的时候,去找的目录,也就是所有的 -l 选项里的库,都会先从 -L 指定的目录去找,然后是默认的地方。

2023-08-14 17:51:41 1535

原创 indent命令总结

111

2023-05-04 14:46:29 711

转载 linux下库和头文件的搜索顺序

https://www.cnblogs.com/ishen/p/11993957.html

2023-04-03 11:02:01 67

原创 别了,文一西路

111

2023-03-29 10:07:57 323

原创 vim的命令模式

vim小技巧

2023-03-27 15:57:40 62

原创 mysql入门命令归纳

读菜鸟教程笔记

2023-03-01 10:36:32 261

原创 阅读腾讯云SDK文档心得

SDK阅读心得与反思

2023-02-02 10:29:35 377

原创 负数除法的定义

负数除法的定义

2022-12-28 16:55:55 399

原创 随手格式化C++代码

格式化C++代码

2022-12-14 16:12:51 77

原创 关于最近的代码测试心得

黑盒测试 && 白盒测试 && TDD

2022-12-02 14:38:51 198

原创 多子对象初始化的坑

多对象初始化的坑

2022-11-11 12:23:06 103

原创 jwtpp里面的各种代码小技巧

各种常用代码

2022-11-10 17:44:09 235

原创 vector和string的奇怪构造与转换过程

裸指针转换vector,vector转换string

2022-11-10 17:14:33 1319

原创 如何编译期标记一个标识符是一个类

class和typename的作用

2022-11-10 15:42:26 140

原创 活用C++17的编译器提示信息提升代码质量

C++17关键词对于代码质量的提升

2022-11-10 15:12:28 719

空空如也

空空如也

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

TA关注的人

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