自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Francis的博客

Keep Looking,Don't Settle! 分享传递,传递互动,IT繁昌!

  • 博客(705)
  • 问答 (2)
  • 收藏
  • 关注

原创 现代C++之万能引用、完美转发、引用折叠(万字长文)

现代C++之万能引用、完美转发、引用折叠0.导语1.问题引入2.引入万能引用3.万能引用出现场合4.理解左值与右值4.1 精简版4.2 完整版4.3 生命周期延长4.4 生命周期延长应用...

2019-12-16 08:00:00 10129 12

原创 记录我的开源之C++那些事

大家好,我是光城,在一个月左右的时间里面完成了侯捷老师相关的资料学习以及其他学习等等,将之前的C++那些事等汇总起来,记录自己的学习历程,关于C++从入门、基础、进阶、源...

2019-11-05 17:47:46 395

原创 机器学习之初学者学习Sklearn

更高级的scikit-learn介绍翻译自:https://github.com/glemaitre/pyparis-2018-sklearn有关翻译项目,欢迎star与加入翻译组:https://github.com/Light-City/Translating_documents在本节教程中将会绘制几个图形,于是我们激活matplotlib,使得在notebook中显示内联图。# 启用...

2019-01-06 14:24:49 1237

原创 特征工程之特征关联

特征工程之特征关联0.说在前面昨天学习了seaborn绘制图形,以及单变量与多变量之间的绘图,那么今天从统计学角度实战分析在处理特征工程过程中所涉及的三个相关系数(具体的三个系数数学推导,在后续更新)。为了更好的便于大家的交流,先建立一个微信总群,二维码在文章最后放出!【关键字】相关系数微信总群1.皮尔逊皮尔逊相关系数:Pearson correlation coeffici...

2018-10-14 13:51:32 3715

原创 实时车票查询及登陆CTC

实时车票查询及登陆CTC0.说在前面本文实现下面两个功能【第一】 如何登陆12306【第二】 如何做到实时车票查询当你们在排队等候服务器响应的时候,我已经买下票了;当你们在抢购最后一张车票的时候,已经没了;当你们在等待放票的时候,我已经调整好买票方案了。哈哈,有点难拉仇恨。。那么没事,学好接下来的操作,会有助于你解决车票麻烦。车票查到了,离心中的远方还远?Close To C...

2018-10-14 13:38:03 761

原创 C++那些事之智能指针何时作为函数参数

C++那些事之智能指针何时作为函数参数通常我们可以看到有些函数用了智能指针作为参数,有些函数又使用了裸指针,究竟用哪一个呢?使用原则是什么?本节使用abseil的tips进行讲解。如下所示,这段代码有什么问题呢?boolCanYouPetTheDog(conststd::shared_ptr<Dog>&dog,absl::Dur...

2024-05-22 16:46:45 262

原创 C++17 那些事之删除三字母

C++那些事之删除三字母C++17 之前,Trigraph 是用 ISO/IEC 646 等小字符代码编写程序的功能,在 C89 中引入。ISO/IEC 646 缺少 C 中使用的以下字符,因此??请使用以下字符进行转义:注:本节代码已放星球。三字母内容替换的内容??=#??([??)]??<{??>}??/\??!`??-~??'^\?它被转义以防止被三字母表替换。C++17三字母被...

2024-05-16 17:30:28 195

原创 C++那些事之Mixin惯用法

C++那些事之Mixin惯用法大家好,我是光城,今天给大家分享C++那些事里面的一个惯用法:mixin混合(Mixins)是Lisp中的一个概念。混合是类的一部分,意味着它旨在与其他类或混合组合在一起。常规独立类(例如Person)与混合的区别在于,混合模拟了一些小功能片段(例如打印或显示),并不用于独立使用。相反,它应该与需要此功能的其他类(例如Person)组合在一起。因此,混合的目的是允许类...

2024-05-14 14:32:41 602

原创 手把手共读STL系列之cv与cv_any[含内容]

手把手共读STL系列之cv与cv_any[含内容]最近打算做一系列的《手把手共读STL》,目前更新了几期,有两期直播,最近一期是cv,使用了非常多的示例,从0到1彻底讲明白condtion_variable与condition_variable_any的用法与底层原理!在直播中讲解了:1.condition_variable与condition_variable_any2.两者的底层实现3.学习如...

2024-05-13 11:29:33 315

原创 玩转cpp小项目星球3周年了!

公众号原创文章破600!玩转cpp小项目星球目前已运营3年,平时不怎么宣传,借此机会给大家分享一下这三年里面我沉淀了哪些内容。里面包含:1.小项目:一些核心模块的拆解,例如:grpc、mutex、线程池等。2.公众号的所有付费文章。3.开源项目源码剖析:例如:gcc-stl、leveldb等。4.技术与工作分析。5.C++那些事内部版本 + 十日狂练。6.C++20与现代C++持续更新中。7.数据...

2024-05-12 13:19:22 133 1

原创 C++那些事之共读cv

大家好,我叫光城,在上一期视频,我们直播讲解了全面解析C++11与C++20线程(含内容),本期将会从0基础讲解condition_variable与condition_variable_any。学习完本节内容,你将掌握以下几个内容:完全掌握condition_variable与condition_variable_any掌握两者的底层实现学习如何设计一个支持任意锁的cv学习如何设计一个支持优雅停...

2024-05-11 09:16:56 343

原创 预告-共读condition_variable

大家好,我叫光城,在上一期视频,我们直播讲解了全面解析C++11与C++20线程(含内容),本期将会从0基础讲解condition_variable与condition_variable_any。学习完本节内容,你将掌握以下几个内容:完全掌握condition_variable与condition_variable_any掌握两者的底层实现学习如何设计一个支持任意锁的cv学习如何设计一个支持优雅停...

2024-05-10 23:15:17 264

原创 如何实现一个线程安全多生产多消费者队列?

如何实现一个线程安全多生产多消费者队列?大家好,我是光城,在讲解明天的预告-从0基础入门到彻底掌握condition_variable内容之前,举一个非常有趣的例子,如何实现一个线程安全的多生产多消费者对列呢?如果让你手撕一个,可以写出来吗?里面有哪些细节?如何使用condition_variable?完整代码如下:获取方式见文末。引入之前,我们需要先写一个线程安全的队列,然后才能写出一个多生产多...

2024-05-10 12:01:35 266

原创 预告-从0基础入门到彻底掌握condition_variable

简介大家好,我叫光城,在上一期视频,我们直播讲解了全面解析C++11与C++20线程(含内容),本期将会从0基础讲解condition_variable与condition_variable_any。std::condition_variable 是一种与 std::mutex 一起使用的同步原语,用于阻止一个或多个线程,直到另一个线程修改共享变量(条件)并通知 std::condition_va...

2024-05-09 23:38:29 328

原创 全面解析C++11与C++20线程(含内容)

昨晚跟一些小伙伴做了第一次直播尝试,一起探讨了C++11 thread与 C++20的jthread,于此同时给大家出了几个问题,在直播之外不会公布答案,所以以后直播还是得跟着走起。总共有22人参加直播,氛围相当不错,没有录播,不过我自己花了点时间重新录了个视频,讲解内容一致,感兴趣的也可以直接在b站观看,对应的内容资料也直接在我的直播群里发出来了,如果你也需要,后台回复:thread。昨晚内容大...

2024-05-08 10:20:42 358

原创 深入STL源码解读线程

大家好,我是光城,最近有小伙伴让我讲一下thread,于是安排起来了,写了几千字的文章。想象一下,一起直播看gcc-13源码,一起学习C++11、C++20的源码是多么的有趣,本次讲解的内容将会带大家深入gcc-13的源码,从C++ 11到C++20,一起揭秘thread与jthread,非常硬核。目标帮助学习者深入学习thread与jthread,学习本次直播你将掌握如何阅读gcc-13的源码C...

2024-05-06 13:38:25 149

原创 阅读C++源码就这么简单,来写一个工具辅助吧。

利用Python协助解读C/C++程序源码导语通常我们希望想看看Redis源码,可惜太慢太多,思维太乱,于是想到看是否用Python可以分析出这个源码直接的依赖关系。这里说的依赖关系指的是,假设有一个C/C++程序,如下redis-cli.c:#include"fmacros.h"#include"version.h"#include<stdio.h>#include&l...

2024-05-01 10:05:17 287

原创 [预告]全面解析thread 与 jthread

大家好,我是光城,最近有小伙伴让我讲一下thread,于是安排起来了,写了几千字的文章。想象一下,一起直播看gcc-13源码,一起学习C++11、C++20的源码是多么的有趣,本次讲解的内容将会带大家深入gcc-13的源码,从C++ 11到C++20,一起揭秘thread与jthread,非常硬核,到时候也欢迎大家一起交流。这次也打算尝试做一次付费直播,时间暂定5.7晚8点,感兴趣的私聊我发10....

2024-04-30 11:47:31 201

原创 如何从0深入PostgreSQL内核写一个执行器算子?

如何从0深入PostgreSQL内核写一个执行器算子?大家好,我叫光城,昨天分享了一个主题:如何从0深入PostgreSQL内核写一个执行器算子?今天来总结一下,本篇文章的直播回放可以在b站观看,点击原文或者识别下方二维码即可!1.执行器概论执行器作为连接查询计划和存储引擎的桥梁,负责从存储引擎读取数据,并基于查询计划树执行对应的算子,并得到最终的查询结果。执行器的处理模型主要分为两大类:基于拉操...

2024-04-26 14:32:35 726

原创 全面解读curl团队的C语言代码规范

代码风格统一有助于团队协作与代码review,业界用的比较多的是google的风格,本节来点不一样的,看看咱们平时用的比较多的工具curl团队的代码规范是什么样子的。curl简单说一下,它在命令行或脚本中传输数据非常有用,大家也肯定用过,其源码实现可以在github上查看https://github.com/curl/curl下面我们来从几个方面看看curl的C语言开发规范。命名缩进注释长行大括号...

2024-04-23 18:18:33 995

原创 向量数据库milvus源码剖析之开篇

向量数据库milvus源码剖析之开篇大模型 + AI 在现在这个时代火的一塌糊涂,而现在RAG相关的向量数据库也非常的火,我自身也是做数据库内核方向的,如果你想深入学习milvus源码,那么这篇文章将会是全网最全的文章!于是今天来开更milvus向量数据库的开篇。我们本节将会从0基础入门:1.如何从源码编译milvus?2.如何访问milvus数据库?自己在源码编译的时候遇到一些坑,也分享给大家,...

2024-04-21 09:07:03 344

原创 开源贡献代码之​探索一下Cython

探索一下Cython本篇文章将会围绕最近给Apache提的一个feature为背景,展开讲讲CPython遇到的问题,以及尝试自己从0写一个库出来,代码也已经放星球了,感兴趣的同学可以去下载学习。0.背景最近在给apache arrow提的一个feature因为C++接口的变动引发其他语言的接口变动,一些测试也跟着需要修复。像PyArrow熟悉的人应该一点也不陌生,这次接口变动也需要修改这个库,因...

2024-04-19 17:27:02 478

原创 C++如何排查并发编程死锁问题?

C++如何排查并发编程死锁问题?最近在Apache arrow里面写一个支持并行的算子:nested loop join,然后既然涉及到并行,这里就会遇到大家常说的死锁问题,假设你碰到了死锁问题,如何调试与定位呢?那这便是本篇目标,帮助你快速掌握并发编程:死锁检测与死锁调试问题,非常的干,好了进行正文。1.引入为了更好的讲解死锁,我们用一个程序来引入。std::mutexgMutex;int...

2024-04-11 11:21:15 436

原创 Rust那些事之ToOwned trait

Rust那些事之ToOwned trait默认的Clone trait有两个问题:只支持固定大小的类型转换也只能从&T到T,不能够从&T到U的转换。pubtraitClone:Sized那么如何实现呢?于是便有了ToOwned trait。ToOwned内部有一个关联类型Owned,实现ToOwned要求其实现Borrow trait。pubtraitToOwned{...

2024-04-08 14:06:14 520

原创 Rust那些事之Borrow VS AsRef​

最近看到两个trait长得挺像,带着疑惑前来学习一下。Borrow VS AsRefBorrow与AsRef是Rust中非常相似的两个trait,分别是:pubtraitBorrow<Borrowed:?Sized>{fnborrow(&self)->&Borrowed;}pubtraitAsRef<T:?Sized&gt...

2024-04-07 17:29:13 663

原创 手搓一个Suno AI 下载器

最近suno确实火,做了不少音乐,我自己也挺喜欢的。https://www.suno.ai/由于官方的音乐没法下载,为了帮助本地播放或者获取音乐,昨晚花了两个小时从零写了一个suno download,使用也比较简单,只需要输入分享的链接,点击下载按钮即可。体验地址:https://light-city.github.io/suno_scan/或者点击阅读原文即可访问。有人一直说找不到项目,不知道...

2024-03-30 11:56:51 446

原创 如何在Apache Arrow中定位与解决问题

如何在apache Arrow定位与解决问题最近在执行sql时做了一些batch变更,出现了一个 crash问题,底层使用了apache arrow来实现。本节将会从0开始讲解如何调试STL源码crash问题,在这篇文章中以实际工作中resize导致crash为例,引出如何进行系统性分析,希望可以帮助大家~在最后给社区提了一个pr,感兴趣可以去查阅。https://github.com/apach...

2024-03-27 16:58:20 1019

原创 Rust那些事之深入理解文件系统的flush

Rust那些事之深入理解fs的flush在 Rust 中,fs 模块提供了文件系统操作的函数,包括向文件写入数据。其中一个常用的函数是 fs::write,它允许用户将数据写入文件。然而,重要的是要注意,fs::write 不会自动刷新或同步数据到磁盘,如果不正确处理,可能会导致潜在的数据丢失或不一致性问题。问题问题出在 fs::write 不保证写入文件的数据立即结束在磁盘上。相反,它会将数据缓...

2024-03-26 18:57:26 606

原创 零基础学习Vim全面指南

学习Vim全面指南最近整理了一下vim学习的资料,简单汇总一下。1.Vim大冒险这是一个寓教于乐学习vim的方式,通过游戏来学习vim,比较特别。https://vim-adventures.com/2.Vim图解一张图比较清晰的讲解个常用的命令。例如:w下一個wordW下一個word(跳過標點符號)b前一個worde跳到目前word的尾端https://blog.vgod.tw/2009/12/...

2024-03-25 11:18:40 768

原创 全面盘点17个C++17的高级特性

全面盘点17个C++17的高级特性C++17是目前比较常用的版本之一,今天花时间来梳理一下17个重要特性,所有的特性也不止这么点。目录1. 并行算法2. If Initializers3. 类模板参数推导(CTAD)4. template `<auto>`5. std::optional 和 std::variant6. 折叠表达式7. 结构化绑定8.模板模板参数9. 内联变量10. ...

2024-03-21 11:54:53 651

原创 戳->考察C++基础的两道小题

昨天分享了一天本来是考察unique_ptr禁止拷贝行为的,但是粘贴的时候贴成正确代码了,于是,今天继续找两道小题来练练手。今天这两道小题,你能回答上来不,题目1有至少6处错误,你能找到几个?题目2:有什么问题?这两道题都比较简单,非常考察基础,如果平时写代码,这两道题非常easy,否则,你可能看不全所有问题,这里面的考察点也是比较全的,大家可以看看了~欢迎留言区讨论。题目1: 一个小测试#inc...

2024-03-20 12:13:10 153

原创 我的春招求职面经

智能指针在面试时经常被问到,最近自己也在写,有一点思考,于是找到了这样一个题目,可以看看,上面这个代码有什么问题?留言区说出你的答案吧!最后分享一下之前的实习->春招->秋招等文章汇总如下,期待大家留言转发。个人在实习投了3家,分别是腾讯、阿里、CVTE,三家都拿到了,最后去了腾讯实习,随后实习转正,也拿到了正式的offer。秋招时页面了很多的公司,例如:字节、B站、快手、滴滴等,其中...

2024-03-19 10:28:18 394

原创 是黑魔法吗?揭秘std::is_function!

最近在写C++代码时用到了is_function,然后顺便看了一下源码实现,发现了一些问题,以前咱们学习的是三个点...,那六个点......你知道是啥吗?同样,如果有一段这样的代码:template<typename...Args>structfoo(Args......);你知道是啥意思?下面我们一起来深入细节!1.六个点六个点我们通常叫做two ellipsis opera...

2024-03-15 16:55:50 160

原创 稍有不慎就写出无法理解的代码

最近看到有个朋友问了个问题:-->是啥操作符,给我整懵了~完整代码如下:#include<iostream>usingnamespacestd;intmain(){intx=10;while(x-->0){cout<<x<<"";}return0;}为...

2024-03-12 17:18:35 136

原创 C++20四大特性之Ranges

C++20 Ranges1.基础概念2.使用在之前的文章已经写过另外三大特性,直通点:C++那些事之C++20协程开篇盘点C++20模块那些事C++20:从0到1学懂concept那么,本篇将开始学习另外一个特性ranges。ranges是C++20的主要特性之一,其中"view"是比较重要的一部分。C++20之前,标准库的算法实现是基于迭代器来实现的,例如:std::sort。std::sort...

2024-03-08 11:33:08 926

原创 C++那些事官网更新啦!

1.C++那些事官网C++那些事提供全面的学习指南,这是一个适合初学者从入门到进阶的仓库,解决了面试者与学习者想要深入C++及如何入坑C++的问题。除此之外,本仓库拓展了更加深入的源码分析,多线程并发等的知识,是一个比较全面的C++学习从入门到进阶提升的仓库,目前3.6W star。https://github.com/Light-City/CPlusPlusThings这个仓库涵盖了C++的基础...

2024-03-07 12:52:47 365

原创 Git零基础实战之如何实现子项目同步更新

Git零基础实战之如何实现子项目同步更新1. 背景2.git apply vs git am3.生成patch4.git apply使用5.git am使用1. 背景假设我们有一个独立的插件项目,因为一些项目的变更,现在需要将其迁移到一个较大的项目中的子目录中。传统的方法可能包括使用 git cherry-pick 来选择性地应用提交,但这种方法并不能很好的处理子目录问题。例如:项目A是我们的目标...

2024-02-26 11:34:17 957

原创 探索 C++20:为什么我们应该拥抱这个时代?

让我们一起拥抱C++20在之前的文章中零零散散的讲解了C++20的几个重要特性,例如:C++20:从0到1学懂concept盘点C++20模块那些事C++那些事之C++20协程开篇接下来本篇将会简单的列一些比较重要的特性供大家参考,陈述一下为什么大家需要学习C++20,它能够给大家带来什么样的好处。C++20是继C++17之后的C++编程语言的ISO/IEC标准修订版的名称。C++ 是一种通用高性...

2024-02-17 11:39:16 783

原创 香港银行开户完整流程

最近想研究一下股票交易,奈何没有港卡,于是调研并办理了一张。办理港卡一般有两种,一种是自己去香港办理,另一种是第三方代理。自己去香港办理花钱少,周期短,缺点是需要对银行的开户要求非常了解,不然可能白跑。而第三方办理花钱比较多,例如:汇丰第三方价格是1500起步。我因为在深圳,靠近香港,直接去办理了,整体流程非常顺利,耗时半天当日下卡〈汇丰香港one卡〉。如果你有了港卡,你可以进行香港投资跨境支付等...

2024-02-16 14:32:20 161

原创 C++那些事之位域计算UB or WD?

看到某人写了一段这样的代码,大家猜测一下下面结果是?位域的使用并不仅限于下面这个简单的示例。在实际应用中,位域常常用于节省内存或者与硬件通信。例如,在嵌入式系统中,我们可能需要与特定硬件寄存器进行精确的通信,而位域正是实现这一目标的理想选择。位域的另一个重要方面是它可以提高数据结构的可读性。通过使用位域,我们可以更明确地表示数据结构中各个成员的含义。这有助于代码的可维护性和可理解性,特别是在处理底...

2024-02-06 10:49:26 188

空空如也

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

TA关注的人

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