- 博客(1473)
- 资源 (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 2287 1
原创 2024 Rust现代实用教程:变量与常见数据类型
3.变量名蛇形命名法(Snake Case),而枚举和结构体命名使用帕斯卡命名法(Pasca|Case)4.强制类型转换Casting a Value to a Different Type。5.打印变量({}与{:?}需要实现特质之后章节会介绍,基础类型默认实现)1.在Rust中,使用Iet关键字来声明变量。
2024-10-26 14:42:19 205
原创 2024 Rust现代实用教程:1.3获取rust的库国内源以及windows下的操作
解决办法:▶ mv /home/wangji/.cargo/config /home/wangji/.cargo/config.toml。拷贝crate中的ducument的代码进行测试。安装到[dev-dependencies]windows可选Rust的目标平台标识。黏贴至Cargo.toml。设置国内源的文件路径不同。安装特定版本的rand。添加开发时用的依赖库。添加构建时用的依赖库。安装最新的rand包。删除最新的rand包。
2024-10-26 14:36:17 229
原创 Rust教程
2024 Rust现代实用教程:1.1Rust简介与安装更新––2024 Rust现代实用教程:1.2编译器与包管理工具以及开发环境–––––––––––
2024-10-26 08:08:07 96
原创 2024 Rust现代实用教程:1.2编译器与包管理工具以及开发环境搭建
构建项目(生成二进制可执行文件或库文件)隐式地使用rustc进行编译。·编译生成二进制文件。
2024-10-26 08:05:47 116
原创 2024 Rust现代实用教程:1.1Rust简介与安装更新
输入cargo ,按两下 tab键,进行命令补全提示,可以看到命令已经出来了。1 使用默认配置,2 使用自定义配置,3 取消安装。Windows 的 Linux 子系统(WSL)好了,rust环境已经安装成功了!这里我们选择默认配置输入 1。配置cargo的环境变量。
2024-10-21 18:08:10 603
原创 windows11下面使用Pyinstaller打包python程序
其执行程序在C:\Users\script.wang\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\Scripts\目录下面(需要自己找找看),使用pyinstaller全路径即可执行。(3)直接执行安装就好了,注意安装结束后要设置环境变量,或者安装时有选型可以勾选上不用设置环境变量也可以。(3)查看安装pyinstaller的安装位置。
2024-10-09 17:00:16 993
原创 写专利时易出现的八个问题
权利要求是1,2,3…,所有的权利要求就组成了权利要求书(权利要求书是对专利的保护范围进行限定)↑铜合金和制备方法,这是两个主题,不能写在一条权利要求里。对比例:和现有技术的对比后达到的东西,这样才有说服力。一定要应用提到了xx东西的那一条,权2才有氧化铝。不确定性词汇有:可以、优选、等、不限于、最佳。写专利的时候要一条一条检查,不能有引用错误。2是从权,从权在独权1中没有添加剂字样。1)论文发表影响专利,专利不影响论文。说明书可以用不确定性的词汇。会重点查老师和学生的专利。
2024-09-30 11:26:59 347
原创 【错误码】现代C++中的错误处理方案
cuda库的错误通过返回值返回,实际的值通过输入输出参数返回。optional可以直接定位到抛出的异常点,这是个进步。
2024-09-05 18:42:01 365
原创 【C++版本】protobuf与gRPC
Google Protocol Buffers(protobuf)是一种语言中立、平台中立的序列化协议,旨在高效地将结构化数据进行序列化和反序列化。(3)Protobuf 可以与 gRPC 结合使用,定义和实现高效的 RPC 协议,支持流式传输和双向通信。每个字段有一个唯一的编号,用于标识字段。required:表示字段是必需的,消息必须包含该字段,否则解析消息时会报错。optional:表示字段是可选的,消息中可以包含也可以不包含该字段。每个字段有三部分:修饰符、类型和字段名,以及一个唯一的编号。
2024-07-29 17:58:55 877
原创 【C++11】C++伪随机数生成器
Xorshift 随机数发生器xorshift游戏里经常使用uint32_t a;// 创建随机数引擎,使用 std::random_device 进行随机种子初始化// 定义均匀分布,生成0.0到1.0之间的浮点随机数// 生成并打印10个随机数i < 10;uint32_t a;uint32_t// 创建随机数引擎,使用 std::random_device 进行随机种子初始化。
2024-07-28 13:22:41 1286
原创 【C++20】从0开始自制协程库
很多人对协程的理解就是在用户态线程把CPU对线程的调度复制了一遍,减少了线程的数量,也就是说在一个线程内完成对协程的调度,不需要线程切换导致上下文切换的开销。但是线程切换是CPU行为,就算你的程序只有一个线程,多个应用一样会切换上下文,所以并不能提升效率。所以协程必须引入线程池以及epoll的多路复用才能在大部分情况下提升每个线程的运行效率,防止线程空转。
2024-07-24 09:44:36 711
原创 【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 948
原创 【c++11】多线程安全
在C++中,std::lock_guard 是一种用于管理互斥锁的RAII(Resource Acquisition Is Initialization)类。使用condition代替while循环中的unlock和lock操作。多线程队列类(mt_queue),线程之间统一用队列通信,无显式锁。
2024-07-15 10:04:42 985
原创 【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 1660
原创 【C++】类型擦除 + 工厂模式,告别 if-else
需求点:假设一个第三方库有提供了很多Msg类,这些Msg类都提供了固定的一个成员函数,但是却没有虚基函数。如何在自己的项目代码中更好的使用这些Msg类内?
2024-07-06 17:22:35 500
原创 【C++11】自己封装RAII类,有哪些坑点?带你了解移动语义的真相
在C++中,std::move 对于智能指针(如 std::unique_ptr 和 std::shared_ptr)非常有用,因为智能指针管理动态分配的资源,如内存。在C++中,std::move 主要用于对象的移动语义,对于大多数内置类型(如整数),移动语义实际上没有意义。对于内置类型(如整数、浮点数等),移动与复制的成本是相同的,因为它们的大小是固定且已知的,且复制的成本非常低廉。在这种情况下,通过使用 std::move,可以避免昂贵的复制操作,提高性能。
2024-07-02 22:04:26 1115
原创 【C++11】深入剖析lambda仿函数的原理,自己动手实现std::function容器
文章目录参考参考【C++11】深入剖析lambda仿函数的原理,自己动手实现std::function容器实现自定义的Function
2024-06-18 13:04:19 370
原创 【C++20工程实战】自己动手实现纯头文件日志库
std::source_location 是 C++20 引入的一个标准库特性,用于获取代码的编译时信息,如文件名、行号、列号和函数名。这对于调试和日志记录非常有用,因为它可以在运行时捕获这些信息,而不需要手动提供。eg:假设我们有一组颜色定义,并希望使用这些定义来生成枚举和字符串数组。X-macro技术的基本思想是使用预处理器宏来定义一组数据或操作,然后通过另一个宏来实际展开这些数据或操作。std::source_location 提供了一种获取编译时源代码位置信息的便捷方法;
2024-06-05 10:19:45 811
原创 C++类型参数技术以及常见的类型擦除容器
这些类型擦除容器在需要存储和操作多态对象时非常有用,可以在运行时决定具体类型,而不需要在编译时知道类型的具体信息。根据具体需求和项目依赖,可以选择使用标准库或 Boost 库提供的类型擦除容器。
2024-05-30 11:07:55 467
原创 C++设计模式之单例模式、模板模式、状态模式、原型模式、CRTP 模式、组件模式、观察者模式、发布-订阅模式、访问者模式
文章目录参考参考游戏开发中经常用到的设计模式【C++】游戏开发常用的设计模式,高手都这样写?单例模式、组件模式、原型模式、访问者模式等
2024-05-26 17:27:43 591
原创 C++ vector,dequeu,list容器中元素的引用失效问题
这是因为std::list在内部使用节点来存储元素,每个节点都包含指向前后节点的指针,因此插入和删除操作只会影响相邻节点的指针,而不会影响其他节点。在这个示例中,即使在列表中插入和删除元素后,ref(原本指向第二个元素的引用)仍然有效,并且保持其值为2。
2024-05-26 14:19:44 508
原创 C++设计模式之策略模式、迭代器模式、适配器模式、工厂模式、超级工厂模式、享元模式、代理模式
puts("喵");puts("汪");然而,在这个案例中,虚函数可有可无,并没有发挥任何价值,因为普通成员函数也可以实现同样效果。虚函数真正的价值在于,作为一个参数传入其他函数时!可以复用那个函数里的代码。puts("喂食");puts("喂食完毕");feed(cat);feed(dog);优点在于,feed 函数只用实现一遍了。puts("喂食");// 重复的代码puts("汪");puts("喂食完毕");// 重复的代码puts("喂食");
2024-05-26 10:19:36 809
原创 服务器并发编程--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 1097
原创 K8S:常用资源对象操作
如果有一种工具能够来帮助我们管理Pod就好了,Pod不够了自动帮我新增一个,Pod挂了自动帮我在合适的节点上重新启动一个Pod,这样是不是遇到上面的问题我们都不需要手动去解决了。幸运的是,Kubernetes就为我们提供了这样的资源对象:Replication Controller简称RC,RC是Kubernetes系统中的核心概念之一,简单来说,RC可以保证在任意时间运行Pod的副本数量,能够保证Pod总是可用的。如果实际Pod数量比指定的多那就结束掉多余的,如果实际数量比指定的少就新启动一些Pod,当P
2024-04-09 13:34:09 1162
原创 K8S:深入理解POD
在上面的例子中,我们只是单纯的创建了一个 POD 实例,但是如果这个 POD 出现了故障的话,我们的服务也就挂掉了,所以 kubernetes 提供了一个Deployment的概念,可以让 kubernetes 去管理一组 POD 的副本,也就是副本集,这样就可以保证一定数量的副本一直可用的,不会因为一个 POD 挂掉导致整个服务挂掉。在这些当中,只有名字是非常需要的,你也可以指定一个更加复杂的属性,例如在容器启动时运行的命令,应使用的参数,工作目录,或每次实例化时是否拉取映像的新副本。
2024-04-09 13:29:17 952
原创 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 489
原创 分布式任务队列:cppq
cppq 是一个简单、可靠、高效的 C++17 分布式任务队列。cppq 是一个 C++ 库,用于对任务进行排队并与工作线程异步处理它们。它由 Redis 支持,旨在可扩展且易于入门。客户端将任务放入队列(队列由redis管理)服务器从队列中取出任务并为每个任务启动一个线程任务由多个worker同时处理任务队列用作跨多台机器分配工作的机制。一个系统可以由多个工作服务器和代理组成,从而实现高可用性和水平扩展。
2024-03-21 17:28:39 555
Shell编程ppt[C++教程网cppcourse[1].com].zip
2020-05-06
跟我一起学C++.zip
2020-05-06
NetworkProgramming-master.zip
2020-05-06
muduo_server_learn.zip
2020-03-12
Docker学习资料总结.7z
2020-02-08
VS code的linux服务器端的离线安装教程
2019-11-09
Scientific.Toolworks.Understand.v4.0.811.Incl.Keygen-AMPED.zip
2019-09-07
vscode的remote ssh中需要的ubuntu服务器中的sshd配置文件
2022-06-19
postgresql数据库插件PG-Strom中Scan算子执行流程分析
2022-03-16
CUDAppt.zip
2021-12-28
cpptools-osx.vsix
2019-12-05
VSCode Cpptools最新版1.40.2版本.7z
2019-12-04
VSCode Cpptools.7z
2019-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人