自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

喜欢打篮球的普通人

https://gitee.com/jiwangreal,https://github.com/Jiwangreal

  • 博客(1453)
  • 资源 (68)
  • 收藏
  • 关注

原创 C/C++学习总结

文章目录Markdown常用语法一、面试二、编程语言1.C/C++(1)C和C++进阶的学习笔记总结目录(2)Linux系统编程(3)C语言开源项目(4)C++开源项目(5)Linux运维2.java3.python4.数据结构与算法三、分布式四、Docker,OpenStack五、Github和开源项目学习六、个人简历七、关于测试八、镜像地址或网站九、自勉之语Markdown常用语法 (1)CSDN Markdown空行:  (2)分割线:用三个以上的星号、减号、底线来建立一个分

2020-08-16 20:14:00 2207 1

原创 【c++11】什么情况下需要封装set/get

右值引用版本的build设计模式,如果涉及到管理资源的类,可以使用这个int handle;Cake() {}// 构造原味蛋糕handle = 0;// 构造巧克力蛋糕// 构造抹茶味蛋糕Cake c;return 0;int amount;int speed;int volume;Cake cake;Milk milk;return 0;

2024-07-16 10:13:26 822

原创 【c++11】多线程安全

在C++中,std::lock_guard 是一种用于管理互斥锁的RAII(Resource Acquisition Is Initialization)类。使用condition代替while循环中的unlock和lock操作。多线程队列类(mt_queue),线程之间统一用队列通信,无显式锁。

2024-07-15 10:04:42 841

原创 【c++11】cpp实现模板函数的声明与定义分离

在模板定义的cpp文件中声明其特化版本other.hoher.cppint(int);使用variant(C++17语法)代替上述的方式other.hother.cpp/*visit内部的实现方式可能就是通过index()选择的;or} , t);每个variant=32+8,string bytes+index bytes。每次占用内存过大,需要优化。所以使用data-oriented design进行改造。

2024-07-12 09:43:38 1002

原创 【C++】类型擦除 + 工厂模式,告别 if-else

需求点:假设一个第三方库有提供了很多Msg类,这些Msg类都提供了固定的一个成员函数,但是却没有虚基函数。如何在自己的项目代码中更好的使用这些Msg类内?

2024-07-06 17:22:35 393

原创 【C++11】自己封装RAII类,有哪些坑点?带你了解移动语义的真相

在C++中,std::move 对于智能指针(如 std::unique_ptr 和 std::shared_ptr)非常有用,因为智能指针管理动态分配的资源,如内存。在C++中,std::move 主要用于对象的移动语义,对于大多数内置类型(如整数),移动语义实际上没有意义。对于内置类型(如整数、浮点数等),移动与复制的成本是相同的,因为它们的大小是固定且已知的,且复制的成本非常低廉。在这种情况下,通过使用 std::move,可以避免昂贵的复制操作,提高性能。

2024-07-02 22:04:26 1022

原创 【C++11】深入剖析lambda仿函数的原理,自己动手实现std::function容器

文章目录参考参考【C++11】深入剖析lambda仿函数的原理,自己动手实现std::function容器实现自定义的Function

2024-06-18 13:04:19 297

原创 【C++11】区分左值、亡值、纯右值,及他们的引用

【C++11】区分左值、亡值、纯右值,及他们的引用cppdemangle.hprint.h

2024-06-14 11:04:36 207

原创 【C++20工程实战】自己动手实现纯头文件日志库

std::source_location 是 C++20 引入的一个标准库特性,用于获取代码的编译时信息,如文件名、行号、列号和函数名。这对于调试和日志记录非常有用,因为它可以在运行时捕获这些信息,而不需要手动提供。eg:假设我们有一组颜色定义,并希望使用这些定义来生成枚举和字符串数组。X-macro技术的基本思想是使用预处理器宏来定义一组数据或操作,然后通过另一个宏来实际展开这些数据或操作。std::source_location 提供了一种获取编译时源代码位置信息的便捷方法;

2024-06-05 10:19:45 731

原创 C++类型参数技术以及常见的类型擦除容器

这些类型擦除容器在需要存储和操作多态对象时非常有用,可以在运行时决定具体类型,而不需要在编译时知道类型的具体信息。根据具体需求和项目依赖,可以选择使用标准库或 Boost 库提供的类型擦除容器。

2024-05-30 11:07:55 375

原创 C++设计模式之单例模式、模板模式、状态模式、原型模式、CRTP 模式、组件模式、观察者模式、发布-订阅模式、访问者模式

文章目录参考参考游戏开发中经常用到的设计模式【C++】游戏开发常用的设计模式,高手都这样写?单例模式、组件模式、原型模式、访问者模式等

2024-05-26 17:27:43 511

原创 C++ vector,dequeu,list容器中元素的引用失效问题

这是因为std::list在内部使用节点来存储元素,每个节点都包含指向前后节点的指针,因此插入和删除操作只会影响相邻节点的指针,而不会影响其他节点。在这个示例中,即使在列表中插入和删除元素后,ref(原本指向第二个元素的引用)仍然有效,并且保持其值为2。

2024-05-26 14:19:44 445

原创 C++设计模式之策略模式、迭代器模式、适配器模式、工厂模式、超级工厂模式、享元模式、代理模式

puts("喵");puts("汪");然而,在这个案例中,虚函数可有可无,并没有发挥任何价值,因为普通成员函数也可以实现同样效果。虚函数真正的价值在于,作为一个参数传入其他函数时!可以复用那个函数里的代码。puts("喂食");puts("喂食完毕");feed(cat);feed(dog);优点在于,feed 函数只用实现一遍了。puts("喂食");// 重复的代码puts("汪");puts("喂食完毕");// 重复的代码puts("喂食");

2024-05-26 10:19:36 744

原创 服务器并发编程--libevent

Libevent 是一个用C语言编写的、轻量级的开源高性能网络库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定时器和信号等事件;注册事件优先级。Libevent 已经被广泛的应用,作为底层的网络库;

2024-05-05 17:21:37 979

原创 C/C++常用开源库总结

C++相关技术学习文档。

2024-04-25 10:04:11 1352

原创 K8S:常用资源对象操作

如果有一种工具能够来帮助我们管理Pod就好了,Pod不够了自动帮我新增一个,Pod挂了自动帮我在合适的节点上重新启动一个Pod,这样是不是遇到上面的问题我们都不需要手动去解决了。幸运的是,Kubernetes就为我们提供了这样的资源对象:Replication Controller简称RC,RC是Kubernetes系统中的核心概念之一,简单来说,RC可以保证在任意时间运行Pod的副本数量,能够保证Pod总是可用的。如果实际Pod数量比指定的多那就结束掉多余的,如果实际数量比指定的少就新启动一些Pod,当P

2024-04-09 13:34:09 1087

原创 K8S基础

–––K8S:深入理解POD–––––––––––––––––

2024-04-09 13:30:57 101

原创 K8S:深入理解POD

在上面的例子中,我们只是单纯的创建了一个 POD 实例,但是如果这个 POD 出现了故障的话,我们的服务也就挂掉了,所以 kubernetes 提供了一个Deployment的概念,可以让 kubernetes 去管理一组 POD 的副本,也就是副本集,这样就可以保证一定数量的副本一直可用的,不会因为一个 POD 挂掉导致整个服务挂掉。在这些当中,只有名字是非常需要的,你也可以指定一个更加复杂的属性,例如在容器启动时运行的命令,应使用的参数,工作目录,或每次实例化时是否拉取映像的新副本。

2024-04-09 13:29:17 905

原创 helm与k8基础

Service:Service是K8S最重要的资源对象,K8S中的Service对象可以对应微服务架构中的微服务。一个Pod表示某个应用的一个是实例。apiserver 对内(集群中的其他组件)和对外(用户)提供统一的 REST API,其他组件均通过 apiserver 进行通信。Node:Node节点是K8S集群中的工作节点,Node上的工作负载由Master节点分配,工作负载主要是运行容器应用。scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;

2024-04-07 11:28:12 436

原创 分布式任务队列:cppq

cppq 是一个简单、可靠、高效的 C++17 分布式任务队列。cppq 是一个 C++ 库,用于对任务进行排队并与工作线程异步处理它们。它由 Redis 支持,旨在可扩展且易于入门。客户端将任务放入队列(队列由redis管理)服务器从队列中取出任务并为每个任务启动一个线程任务由多个worker同时处理任务队列用作跨多台机器分配工作的机制。一个系统可以由多个工作服务器和代理组成,从而实现高可用性和水平扩展。

2024-03-21 17:28:39 473

原创 高效的Gitlab Flow最佳实践

三种工作流程,有一个共同点:都采用"功能驱动式开发"(Feature-driven development,简称FDD)。

2024-03-19 15:20:41 1498

原创 taskflow:多线程并行任务

task之间可以并行,那么taskflow和普通线程池的区别在于,可以给task之间添加依赖关系,比如taskA.precede(taskB) 表示taskB依赖taskA;或者taskA.succeed(taskB) 表示taskA依赖taskB;那么构建了这个依赖关系之后,taskflow的能力就是可以在尽可能多的并行处理前提下,保证有依赖的任务之间的调用顺序。首先taskflow是基于graph的,每个独立的task只能在单核单线程上运行,可以看成一个执行单元。例如:B依赖A依赖S;

2024-03-16 10:08:49 799

原创 ptmalloc、tcmalloc与jemalloc对比分析

ptmalloc、tcmalloc与jemalloc对比分析。

2024-03-10 18:33:05 784

原创 分布式系统之选举算法

初始化的时候,所有节点都是普通节点。在指定时间内没有收到其他节点Alive信息,则认为自己是主节点,然后向其他节点发送Victory消息,宣布自己是主节点。若发起选举的节点超过一半选票,则成为主节点,状态转换为Leader,其他节点状态有Candidate转换为Follower,leader和follower之间有周期性的心跳包,用于检测主节点存活。在开源的Redis,MongoDB,Zookeeper等软件中也都采用了的选举算法,常用的选举算法有以下三种:Bully算法,Raft算法,ZAB算法。

2024-03-06 09:48:35 685

原创 OpenAPI工具、生成器

eg:Stoplight studio创建一个支付的OpenAPI文档。创建一个路径用于查询支付状态。

2024-03-01 09:44:34 1050

原创 使用std::unique_ptr Pimpl造成的incomplete type的报错分析和解决

自定义删除器,将delete pImpl的操作,放到widget.cpp源文件中。// 预先声明class Impl;然后在源文件widget.cpp中delete p;这种方法改起来也不复杂,但是弊端也很明显,std::make_unique没法使用了,只能自己手动new,直接看源码吧这里返回的是默认删除器类型的unique_ptr,即std::unique_ptr。// 错误!

2024-02-25 17:11:00 919

原创 Ubuntu中Python包的寻找路径

__file__ 识别特定模块的位置。.__path__ 识别特定包的位置。

2024-02-25 16:20:07 740

原创 Windows安装WSL2精简版教程

打开 控制面版,查看方式可选择大图标,在点击程序与功能—>启用或关闭Windows功能,检查下图中红框圈出内容是否均以打对勾;配置之前的默认登录用户,ubuntu2004.exe config --default-user 导入系统到指定位置,wsl --import WSL版本号。导出系统到指定位置,wsl --export 启动系统后,最好在检查一下虚拟机是否以启动。WSL2需要使用虚拟机,因此需要在系统中启动虚拟机功能。

2024-01-18 14:48:21 5314

原创 【C++20】编译期检测所有未定义行为undefined behavior和内存泄漏(不借助编译选项以及任何外部工具)

【C++20】编译期检测所有未定义行为和内存泄漏,不借助任何外部工具。

2024-01-06 09:57:54 908

原创 使用dlopenC++动态库的函数符号的常规做法

在 C 中,符号名称与函数名称相同:strcpy 的符号将是 strcpy,因为在 C 中没有两个非静态函数可以具有相同的名称。因为 C++ 允许重载(具有相同名称但不同参数的不同函数)并且具有许多 C 所没有的功能(如类、成员函数、异常规范),所以不可能简单地使用函数名称作为符号名称。C++ 有一个特殊的关键字来声明具有 C 绑定的函数:extern “C”。声明为 extern “C” 的函数使用函数名称作为符号名称,就像 C 函数一样。因此,只有非成员函数可以声明为 extern “C”,并且不能重载

2023-11-18 16:31:30 530

原创 Python实现定时对网站进行签到

首先打开我们需要签到的网站,使用Chrome浏览器的F12快捷键(或通过鼠标右键菜单“检查”)打开浏览器的开发者工具,点击 Network 查看所有加载的请求。如下方动图所示,这个时候我们手动点击签到,就会发现出现了一个新的post请求(checkin),不出所料这便是我们签到的请求。将刚刚复制的内容,填写该网站左侧,右侧同时生成了对应的 python requests 代码。剩下的事就很简单了,只需要每天定时执行该代码(模拟发起post签到请求)就可以实现该网站签到。复制cURL(bash)

2023-11-03 10:24:20 466

原创 muduo异步日志库

基本思想是准备2部分buffer:A和B,前端(front end)线程往buffer A填入数据(日志消息),后端(back end)线程负责将buffer B写入日志文件。实现时,在后端设置一个已满缓冲队列(Buffer1~n,2

2023-10-22 09:30:51 596

原创 c++ inline namespace

C++11引入了inline namespace的语法,这个语法可以让程序员在不破坏现有代码的情况下添加新的命名空间。inline namespace的作用是将内层的命名空间成为外层的一个别名。也就是说,当程序员使用外层命名空间的时候,内层命名空间的内容也可以被访问到,不需要加上内层命名空间的限定符。这个特性可以帮助程序员更好地组织代码。举个例子,假设我们有一个命名空间foo,里面包含一个内层命名空间bar。// bar 中的内容// foo 中的内容。

2023-09-25 10:47:16 210

原创 GitLab CI/CD:.gitlab-ci.yml 文件常用参数小结

可以定义跑CI时想要运行的命令或脚本。可以定义想要包含的其他配置文件和模版。可以定义job之间的依赖和缓存。可以执行程序部署并定义部署位置。

2023-09-24 10:58:44 1272

原创 C++正则表达式regex使用总结

正则表达式(regular expression)的C++库regex是一种强大的描述字符序列的工具 , C++11中也将正则表达式纳入了新标准的一部分。regex库中常用组件介绍在头文件中包含了多个我们使用正则表达式时需要用到的组件,即 #includeregex库组件详细介绍如下regex表示有一个正则表达式类,比如:regex pattern(“(.{3})(.{2})_(\d{4})!”)全文匹配,要求整个字符串符合正则表达式的匹配规则。

2023-09-23 17:31:19 2097

原创 cpp-stub使用教程(基于Gtest)

配合Gtest使用,因为Gtest的所有接口都是基于虚函数的;此外,由于一些依赖接口不容易Stub或者Mock(或者写Stub test过于麻烦),因此在Gtest的基础上使用cpp-stub进行单元测试用例编写。

2023-09-21 11:58:35 1984

原创 gdb调试C++程序:Cannot evaluate function -- may be inlined

如果你的程序依赖于libcxx,而不是libstdc++.so.6。对应的可以调整cmake编译选项或者选择Debug类型进行编译。配置~/.gdbinit。

2023-09-20 16:53:40 886

原创 如何下载免费文献

搜索“浙江图书馆”,进入左下方功能栏里的“服务大厅”。同样可以免费下载文献:比如杭州图书馆、绍兴图书馆。操作方法与上面类似,通过支付宝来在线办理读者证。白嫖知网的入口之一,就藏在你天天用的支付宝里。办理完毕后,回到支付宝打开卡包,读者证到手。用刚刚获得的账号,从电脑端登录浙江图书馆。但浙江图书馆使用的人比较多,容易卡顿。下滑找到“中国知网数据库总站”,点击“新用户注册”填信息。可以试一试其他图书馆,

2023-08-28 13:28:21 176

原创 C++设计模式之桥接模式

总之,桥接模式适用于需要将抽象部分和实现部分分离的场景,以实现灵活性、可扩展性和解耦的设计。它可以帮助处理多个维度上的变化,并在运行时动态地切换抽象和实现的关系。eg:手机品牌和软件是两个概念,不同的软件可以在不同的手机上,不同的手机可以有相同的软件,两者都具有很大的变动性。

2023-08-23 17:29:59 1100

原创 C++设计模式之适配器模式

类适配器模式使用继承来适配接口;对象适配器模式通过将适配者对象作为适配器类的成员变量来实现适配;无论是类适配器模式还是对象适配器模式,都可以实现接口适配的效果,选择哪种方式取决于具体的需求和设计考虑。

2023-08-23 17:04:02 1000

Docker学习资料总结.7z

这是我研究Dicker一周以来学习的Docker资料的总结,里面包括:namespace,cgroup等对Docker核心原理的认识和理解,还有一些关于Docke自己做的实验

2020-02-08

RF自动化ppt.7z

这是rf自动化的ppt资料,主要包括四个章节:包括接口,Fiddler,RF接口自动化测试,Jmeter测试接口等,

2020-01-07

mingw-w64.7z

需要下载的mingw-w64的链接,他需要配合llvm使用才可以在vs code编译C/C++代码,积分我设置的很低,只为帮助大家,希望大家能喜欢

2019-12-20

vs code能编译代码.7z

需要下载的LLVM的链接,里面还有某乎博主的安装教程的链接,积分我设置的很低,只为帮助大家,希望大家能喜欢

2019-12-20

VS code的linux服务器端的离线安装教程

这是vscode的linux服务器端的离线安装教程,里面还有win10 vscode的client端的config的权限问题的解决办法

2019-11-09

vs code配置文件和工作空间

这是我按照某乎制作的关于c和cpp的配置文件,所有相关配置和工作区都已经建立好了,拿来直接可以用,编译调试都可以!

2019-10-17

Desktop.zip

这里面是idea常用快捷键的操作背景图片,还有Unix进程间通信卷2的资料

2019-10-08

Linux基础课件.7z

这是Linux快速进阶ppt,包含了:从认识Linux,Linux目录,文件,磁盘,网络等各种指令学习,学开发看鸟哥太浪费时间

2019-09-23

个人简历攥写模板.zip

校招/社招个人简历的最佳模板,欢迎各位有志之士下载,么么哒

2019-09-22

计算机网络面试题总结.pdf

来自秋招面试的计算机网络面试题总结,四大层的重点内容的总结

2019-09-22

understan中文版v926版本的代码设置.lua

这是我使用understan中文版v926版本的代码设置,供程序员们使用,加载方式:工具-选项-风格-导入

2019-09-19

Understand4_0(内置破解器).zip

understan中文版v926版本,供程序员们使用,非常好用,总共两部分,这是第一部分

2019-09-07

Scientific.Toolworks.Understand.v4.0.811.Incl.Keygen-AMPED.zip

understan中文版v926版本,供程序员们使用,非常好用,总共两部分,这是第二部分

2019-09-07

C++函数库和Linux函数库.zip

这是Linux C语言的库函数和C++标准库函数的.CHM文件,供想深入学习的人学习

2019-08-24

googletestnew.7z

这是我根据googletest测试框架,做的单元测试案例,希望你能喜欢,都能跑!

2019-08-13

ccsetup560.zip

这是我从纯英文的cclean官网上找来的最新的免费版本的cclean,版本是v5.6,供大家下载

2019-07-20

cclean pr密钥.txt

这是2019的cclean pro的密钥,具体的使用方法参考里面的文档,应该不会涉及到版权问题

2019-07-16

嵌入式开发企业直通课2.1.pdf

这是嵌入式开发的努力方向总结,主要是来自某课堂资源

2019-06-03

CPP面试题集锦.doc

这是一份来自2018年秋招的,关于CPP问题的总结,平时有空就多看看

2019-06-02

linux C一站式编程课后答案汇总

linux C一站式编程课后答案汇总,供广大同学使用,大部分的答案已经给出

2019-04-22

kali中安装burpsuit profession脚本工具

kali中安装burpsuit profession脚本工具,一件安装方便使用;支持 Linux和WIndows

2024-01-20

划词翻译v8.7.6用于Chrome和Edge

划词翻译v8.7.6用于Chrome和Edge

2022-09-06

vscode的remote ssh中需要的ubuntu服务器中的sshd配置文件

客户端:win10,服务器端:ubuntu,使用vscode免密登录ubuntu时,会需要到的sshd配置文件

2022-06-19

postgresql数据库插件PG-Strom中Scan算子执行流程分析

postgresql数据库插件PG-Strom中Scan算子执行流程分析; 资源中的.mdj文件请由StartUML软件打开;

2022-03-16

CUDAppt.zip

https://www.bilibili.com/video/BV1kx411m7Fk?p=2&spm_id_from=pageDriver对应的CUDA教程PPT课件

2021-12-28

postgres.zip

pg11源码

2021-11-25

PostGreSQL资料.zip

PostGreSQL资料.

2021-11-25

Downloads.zip

C /C++常见面试题和简历模板

2021-06-26

ant-learn-python-concurrent-main.zip

python并发编程的一些资料

2021-05-24

Linux函数手册等.zip

Linux函数手册等.zip

2021-04-18

xshell6pjb_4614.zip

这是从xshell官网下载的xshell6,非常好用的免费版。里面的exe文件是64bit的,32bit也有下载链接,下载速度很快

2020-09-24

MobaXterm12hanhua.rar

这是一种Linux终端登录软件,版本是Moba12,中文版的,里面可以设置moba的背景颜色,真的很不错哦

2020-06-22

Shell编程ppt[C++教程网cppcourse[1].com].zip

这是C++教程网的Linux入门的相关ppt,如果需要可以看看。我觉得非常不错的哦,ppt很全的。请各位入门Linux敬请想用

2020-05-06

跟我一起学C++.zip

这是C++教程网的和我一起学习C++的ppt和代码,可惜只有1-25节,后面的代码我会持续补充进去。链接:https://blog.csdn.net/u011436427/article/details/105442484

2020-05-06

NetworkProgramming-master.zip

这是C++教程网之网络编程部分的所有代码,代码应该都可以用,大部分代码使用C语言编写。目录:https://blog.csdn.net/u011436427/article/details/105882800

2020-05-06

muduo_server_learn.zip

大并发服务器开发(实战)https://www.bilibili.com/video/av45560719课程的所有ppt和代码资料,里面还有muduo网络库的使用手册

2020-03-12

20+张高清技能图谱.7z

20+张高清技能图谱.7z,包括:区块链,云计算,ios,linux,前端工程师,hadoop家族等等涵盖了所有软件开发的图谱内容

2020-03-02

cpptools-osx.vsix

这是我找到了的cpptools-osx.vsix资源,是用在离线安装在vs code中的拓展包,可以用来查找定义,查找引用,但是得和https://blog.csdn.net/u011436427/article/details/103382737进行配合,安装完毕后,下载这个网站的链接,用链接后的完整扩展包替换离线安装的包即可

2019-12-05

VSCode Cpptools最新版1.40.2版本.7z

能连接微软的相关网站,从github上更新离线vs code扩展包的结果就是,扩展包安装完毕,却不能完全使用。 eg:C/C++ IntelliSense, debugging, and code browsing(VSCode Cpptools)内网条件下,依赖包可能不能更新完全,代码的跳转等功能不能使用,这是扩展包C/C++ IntelliSensese的问题,所以我在家下好也测试好了,该扩展包绝对可用!

2019-12-04

VSCode Cpptools.7z

我将VSCode Cpptools的相关所有依赖包以及我的VSCode Cpptools完整扩展包上传了,如果你缺少什么就加什么,也可以将这些包分别全加进行,参考我的完整扩展包即可,若还是不行,可以将我的完整扩展包替换掉你原来的扩展包,ps:我没试过!!!

2019-12-04

空空如也

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

TA关注的人

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