语言特性 Modern Cpp
C++11 14 17新特性 包含模板元编程等idioms
XNB's Not a Beginner
[算法 | 现代C++ | 数据结构实现 | 有趣的Coding魔法]
展开
-
【线段树的可持久化】(主席树 | 历史记录 | 版本回溯)
【代码】【线段树的可持久化】(主席树 | 历史记录 | 版本回溯)原创 2024-03-19 19:35:42 · 236 阅读 · 0 评论 -
【物理排序】(最小交换环 | 大体量表排序 | 泛型算法)
在表排序的过程中,实际上是不需要移动那些原始数据的,要移动的只是指向他们位置的那些指针。不移动元素本身,而只移动元素本身的排序方法,我们称之为“间接排序});++i)交换环:N个数字的排列由若干个独立的环组成。原创 2024-03-10 16:16:39 · 381 阅读 · 0 评论 -
【函数缓存 | 记忆化技术】(类型萃取 | 延迟计算 | hash | 计算优化 | 函数式编程 | 模板元编程)
这样,当相同的查询再次发生时,可以直接从缓存中获取结果,而无需再次访问数据库。这样,当相同的请求再次发生时,可以直接返回缓存中的结果,避免了不必要的网络延迟和开销。模板类,然后通过特化这个模板类,将返回类型和参数类型作为模板参数,从而能够获取函数的类型、返回值和参数的个数。,我们可以以一种统一的方式处理这些不同类型的函数对象,而无需针对每种类型编写特定的代码。,可以将之前计算过的结果缓存起来,以便在需要时快速重用,从而提高渲染速度和游戏性能。因此,可以使用记忆化来缓存推理结果,从而加速模型的响应速度。原创 2024-03-09 16:46:28 · 1236 阅读 · 0 评论 -
【线段树的简单封装】
【代码】【线段树的简单封装】原创 2024-03-07 19:40:16 · 412 阅读 · 0 评论 -
【树状数组 | 简单实现】(单点修改 | 区间查询)
【代码】【树状数组 | 简单实现】(单点修改 | 区间查询)原创 2024-03-03 18:28:21 · 412 阅读 · 1 评论 -
【日常实现STL : partial_sort】
然后遍历range:[middle, last),在后面搜索比* first更小的元素,置为更合适的heap-top,然后shift-down(调用adjust_heap, 实质上为shift-down + push_heap), 然后调整range:[first, middle]再次成为max-heap。最终将整个容器中top-k构成的元素集合在range:[first, middle)中构成的max-heap进行排序(调用pop_heap)原创 2024-02-27 23:26:00 · 498 阅读 · 1 评论 -
【400行 手搓trie树】(ModernCpp | KMP & AC后缀机 | 模糊匹配 | 词频分析 | 相似度分析 | 串排序 ...)
这里Node是一个嵌套在class trie定义内的struct类型,表示trie树上的节点。原创 2024-02-24 22:18:43 · 1272 阅读 · 1 评论 -
【编译期枚举反射】
【代码】【编译期枚举反射】原创 2024-02-19 08:32:43 · 388 阅读 · 1 评论 -
【中缀表达式求值】(异常处理 | Stack | 支持单目运算 | 支持位运算)
opposite 相反数。操作数和运算符的相对位置有误。~ not 按位取反。原创 2024-02-17 00:04:30 · 882 阅读 · 2 评论 -
【四叉树】(boolean矩阵划分树 | 多路树 | RAII | 深拷贝)
【代码】【四叉树】(boolean矩阵划分树 | 多路树 | RAII | 深拷贝)原创 2024-02-16 06:16:25 · 487 阅读 · 2 评论 -
【维护中位数的工具类 MedianHolder】(对顶堆 | templateADT | 批处理)
【代码】【中位数维护的工具类 MedianHolder】(对顶堆 | templateADT | 形参包 初始化列表扩展)原创 2024-02-15 00:18:51 · 532 阅读 · 1 评论 -
【LRU Cache】(Least recently used | template ADT| list + double hash)
【代码】【LRU Cache】(Least recently used | template ADT| list + double hash)原创 2024-02-14 20:12:24 · 347 阅读 · 1 评论 -
【LFU Cache】(least frequency usage | ADT | min-heap + double hashtable)
模拟CPU根据主存地址,向高速缓冲的读操作。包含90%的写操作,和10%的读操作。以及DMA或主存向缓冲的写操作。最终计算命中率和读写总次数。原创 2024-02-14 00:32:07 · 506 阅读 · 1 评论 -
[FIFO Cache实现】( List + hashtable | template | LRU )
【代码】【LRU Cache实现】( List + hashtable | template | LRU )原创 2024-02-11 20:34:46 · 550 阅读 · 1 评论 -
【红黑树】(仿STL map | 暂时只写了插入)
【代码】【红黑树】(仿STL map | 暂时只写了插入)原创 2024-02-13 02:17:13 · 569 阅读 · 2 评论 -
【unique_ptr的简易实现】
标准库的源码有一千来行,我就写个80几行的缩水版好了。原创 2024-02-13 02:09:59 · 702 阅读 · 1 评论 -
【TRIE字典树实现:400行】(模糊匹配 | AC自动机 | 多模式匹配 | 串排序 | 词频计数 | 相似度分析 | RAII模式 | 前缀比较 )
取代传统的pair< return_type, bool > 检索返回类型。范围库相关标准设施在代码简化的重要作用。中智能指针所有权的转交。使得代码较大程度复用。原创 2024-02-08 00:23:10 · 1523 阅读 · 2 评论 -
【std::reference_wrapper简单实现】
【代码】【std::reference_wrapper简单实现】原创 2024-02-07 15:40:05 · 356 阅读 · 1 评论 -
【自定义多目泛型max】(concept&requires | TAP | 模板递归 )
( 具有相同的向下兼容的公共类型,explicit convertion :common_type;或者具有builtin 或 override operator < )一个函数max签名为 return_type max( Argtypes&&...params ) -> max{ params... }接受任意多参数,参数两两之间满足约束 { v1 < v2 }->bool 的weak_ordering拟序关系。原创 2024-02-07 15:28:30 · 375 阅读 · 1 评论 -
【类型元组序列化】(模板元编程 | 类型提取 | 类型映射 )
或者。原创 2024-02-07 08:10:48 · 389 阅读 · 1 评论 -
【表达式树】( 二叉树 | 逆波兰式 | RAII模式 | 工厂模式 | 解析器模式 | 运行时多态 )
【代码】【表达式树】( 二叉树 | 逆波兰式 | RAII模式 | 工厂模式 | 解析器模式 | 运行时多态 )原创 2024-01-30 16:11:29 · 462 阅读 · 1 评论 -
[Command 设计模式] ( Modern C++ | 模板元编程 | 编译时&运行时多态 | 任务队列 | 树形结构)
【代码】[Command 设计模式] ( Modern C++ | 模板元编程 | 编译时&运行时多态 | 任务队列 | 树形结构)原创 2024-01-28 00:30:29 · 676 阅读 · 1 评论 -
【仿STL实现变长数组】( Iterator | Allocator | 动态扩容)
【代码】【仿STL实现变长数组】( Iterator | Allocator | 动态扩容)原创 2024-01-22 21:38:40 · 426 阅读 · 1 评论 -
【单例 & 定长 & 优先 & 动态线程池】 ( C++11 | 拒绝策略 | 动态任务分配 | 单例设计模式 )
task;原创 2024-01-16 23:36:00 · 523 阅读 · 1 评论 -
【仿std::list 实现单链表 】( Allocator | Iterator | 重载运算符)
【代码】【仿std::list 实现单链表 】( Allocator | Iterator | 重载运算符)原创 2024-01-22 21:40:19 · 440 阅读 · 0 评论 -
【Multiset类库 旋转Treap(树堆)实现】(仿STL set |名次树 | 随机优先级扩展域)
树堆(treap = tree + heap),既是一棵二叉查找树,也是一个二叉堆。。这两个关键字分别维护这个数据结构的(极大)堆性质和BST性质。普通的BST有很强的不稳定性 在不降或不升序列按序插入中 整棵树会退化成单链表 操作复杂度也从logN提高为N的线性复杂度。原创 2023-12-13 23:33:32 · 900 阅读 · 0 评论 -
探测哈希 (gd_hash | 平方探测二次散列 )
【代码】探测哈希 (gd_hash | 平方探测二次散列 )原创 2023-12-17 22:57:53 · 425 阅读 · 3 评论 -
拉链哈希 模板 (Chaining Hash | 链式向前星 | 双向链表 | 再哈希 | 动态维护)
【代码】拉链哈希 模板 (Chaining Hash | 链式向前星 | 双向链表 | 再哈希 | 动态维护)原创 2023-12-17 14:45:44 · 365 阅读 · 2 评论 -
二叉搜索树 类模板(BST | Template)
【代码】二叉搜索树 类模板(BST | Template)原创 2023-12-18 15:47:31 · 361 阅读 · 2 评论 -
【混合排序】(STL std::sort | 快速排序 | 插入排序 | 堆排序)
【代码】【混合排序】(STL std::sort | 快速排序 | 插入排序 | 堆排序)原创 2023-12-19 14:09:42 · 429 阅读 · 0 评论 -
循环队列模板类(支持动态扩展 | 仿std::vector::resize 静态扩展)
【代码】循环队列模板类(支持动态扩展 | 仿std::vector::resize 静态扩展)原创 2024-01-12 00:36:48 · 344 阅读 · 0 评论 -
【c++11 std::array 简单实现】
【代码】【c++11 std::array 简单实现】原创 2024-02-04 19:51:08 · 747 阅读 · 1 评论 -
【STL:next_permutation 简单实现】
【代码】【STL:next_permutation 简单实现】原创 2024-02-06 20:17:15 · 368 阅读 · 1 评论 -
【trie 字典树】( RAII | Multiset频次统计 | STL )
【代码】【trie 字典树】( RAII | Multiset频次统计 | STL )原创 2024-02-06 18:00:27 · 649 阅读 · 2 评论 -
std::erase_if | c++20 模拟
【代码】std::erase_if | c++20 模拟。原创 2024-01-26 01:40:39 · 540 阅读 · 0 评论 -
STL 算法库函数模拟 ( unique | merge_sort | random_shuffle | ......)
【代码】STL 算法库函数模拟 ( unique | merge_sort | random_shuffle | ......)原创 2024-01-26 03:54:38 · 493 阅读 · 0 评论 -
【RITT 类型擦除与多态】
【代码】【RITT 类型擦除与多态】原创 2024-02-07 02:37:00 · 476 阅读 · 0 评论 -
【Fluent Method/Interface Chain | C++函数链式调用思想】
【代码】【Fluent Method/Interface Chain | C++函数链式调用思想】原创 2024-02-07 06:19:19 · 659 阅读 · 1 评论