本文使用C++实现一个基于AVLTree实现的map/set,不同于网上大部分的实现,本文争取按照C++STL风格来编写。 前言 其实网上关于数据结构的文章已经满大街了,但是大多数的实现都非常简单,虽然有些使用Java/C#/Python版本的代码甚至可能和其标准库相差无几,但是C++不一样,C++ Read More
posted @ 2025-01-30 18:09 鸿钧三清 阅读(2) 评论(0) 推荐(0) Edit
C++如何写一个带有allocator的vector 在STL中,容器一般都有一个allocator模板参数。 allocator用于获取/释放内存及构造/析构内存中元素的分配器。类型必须满足分配器 (Allocator) 。如果 Allocator::value_type 与 T 不同,那么行为未 Read More
posted @ 2025-01-30 17:28 鸿钧三清 阅读(3) 评论(0) 推荐(0) Edit
如何编写一个128位的整数 现在的大部分的计算机编程语言都包含了64位的有符号整数和无符号整数,有的甚至还提供了128位的整数和大数,比如: C# : System.Int128, System.UInt128 Rust: i128, u128 但是在C/C++中并未发现uint1 Read More
posted @ 2024-05-22 22:28 鸿钧三清 阅读(966) 评论(0) 推荐(0) Edit
银行卡号码校验算法 背景 最近在办卡的时候发现,两个相邻的人办卡,他们的卡号乍一看并不是连续的,但是把最后一位除掉之后却是连续的,很容易猜想最后一位应该是校验位。 银行卡号码的校验规则 银行卡号码的校验采用Luhn算法,假设有银行卡号如下: 图1 我们使用不同的颜色对奇数和偶数部分进行区分。 红色部 Read More
posted @ 2024-02-25 15:07 鸿钧三清 阅读(363) 评论(0) 推荐(0) Edit
# C++使用ranges库解析INI文件 # 引言 C++20引入了\头文件,C++23对其进行了完善,本文将使用该头文件提供的adaptor编写一个简单的ini解析器。 ## ini文件格式介绍 *** 一般的ini文件由section和entry部分,比如 ```ini [section] k Read More
posted @ 2023-06-20 09:34 鸿钧三清 阅读(128) 评论(0) 推荐(0) Edit
# C++ 如何快速实现一个容器的迭代器 ## 引言 C++的标准库中的容器都会提供迭代器,如果一个容器满足forward_range,那么这个容器一般会提供以下成员类型和函数: - iterator - const_iterator - begin - end - begin - cend 如果该 Read More
posted @ 2023-05-19 19:16 鸿钧三清 阅读(203) 评论(0) 推荐(0) Edit
C++如何实现容器的Copy/Move/Swap方法 1、引言 目前网上有很多关于如何编写C++容器的教程,比如各种“手写STL”之类的文章和视频,但是这些教程中的容器一般都不包括allocator,比如: template <typename T> class MyVector { ... }; Read More
posted @ 2023-05-09 09:29 鸿钧三清 阅读(139) 评论(0) 推荐(0) Edit
C++ 结构体对齐 引言 数据结构对齐是数据在计算机内存中排列和访问的方式。它由三个独立但相关的问题组成:数据对齐、数据结构填充和打包。现代计算机硬件中的 CPU 在数据自然对齐时最有效地执行内存读取和写入,这通常意味着数据的内存地址是数据大小的倍数。例如,在 32 位架构中,如果数据存储在四个连续 Read More
posted @ 2023-04-20 21:01 鸿钧三清 阅读(320) 评论(0) 推荐(0) Edit
C++ 按照字典序实现combination 引言 C++ STL提供了permutation相关的函数(std::next_permutation和std::prev_permutation),但是没有提供combination相关的函数,本文将基于字典序的方法实现一个combination相关的 Read More
posted @ 2023-04-11 22:00 鸿钧三清 阅读(199) 评论(0) 推荐(0) Edit
Mark & Copy 算法 1、引言 Garbage Collector(GC)广泛存在于现代流行的编程语言之中,比如Java,C#,Python等。笔者认为结合源代码学习可以更加有效地了解一个算法,但是在网上找到更多的是Mark&Sweep算法,如http://journal.stuffwith Read More
posted @ 2023-04-03 20:19 鸿钧三清 阅读(84) 评论(0) 推荐(0) Edit
点击右上角即可分享
微信分享提示