C++_ 模板学习六

C++_ 模板学习六

bingliaolong C++ 2个月前 9 0

惰性实例化与元函数组合 概述 示例 很多人会认为“不选择的分支不会编译”,但实际经常仍然报错 关键规则是 std::conditional 只负责选择已经成功形成的两个类型,不负责阻止模板实参本身被形成 什么是惰性实例化 考虑 仅仅把模板特化当成不完整类型使用,通常不需要实例化其...

搜索与图论模板

搜索与图论模板

bingliaolong Algorithm 4年前 15 0

树与图的存储 树是一种特殊的图,与图的存储方式相同。 对于无向图中的边ab,存储两条有向边a->b, b->a。 因此我们可以只考虑有向图的存储。 树与图的遍历 拓扑排序 时间复杂度O(n+m),n表示点数,m表示边数 朴素dijkstra算法 时间复杂度O(n*n+...

C++_ 模板学习七

C++_ 模板学习七

bingliaolong C++ 2个月前 8 0

Typelist——编译期类型容器 概述 普通容器保存运行期对象 Typelist 保存的是一组类型 它没有运行期元素,也不负责构造对象 所有内容都编码在模板参数包中 C++ 标准库没有名为 std::typelist 的类型,但: std::tuple<Ts...>...

数学知识模板

数学知识模板

bingliaolong Algorithm 4年前 26 0

试除法判定质数 试除法分解质因数 朴素筛法求素数 线性筛法求素数 试除法求所有约数 约数个数和约数之和 欧几里得算法 求欧拉函数 筛法求欧拉函数 快速幂 扩展欧几里得算法 高斯消元 递归法求组合数 通过预处理逆元的方式求组合数 Lucas定理 分解质因数法求组合数 卡特兰数 NI...

C++_ 模板学习八

C++_ 模板学习八

bingliaolong C++ 2个月前 10 0

std::variant 与 std::visit 概述 std::variant 是 C++17 标准库提供的类型安全联合体 variant 解决什么问题 假设服务器收到的消息可能是 任意时刻,一条消息只会是其中一种 传统做法是手工组合枚举和 union 问题在于: 必须手动记...

C++_函数模板、类模板、特化、模板元编程、SFINAE、概念

C++_函数模板、类模板、特化、模板元编程、SFINAE、概念

bingliaolong C++ 2年前 42 0

模板 概述 C++模板是一个强大的编程工具,使得可以编写通用的、类型安全的代码 模板主要用于函数和类的泛型编程,允许你定义通用算法和数据结构,然后在需要时使用具体类型进行实例化 使用场景 通用算法: 模板允许你编写通用算法,如排序、搜索等,而无需针对每种类型重复实现 容器类: 标...

C++_ 模板学习九

C++_ 模板学习九

bingliaolong C++ 2个月前 9 0

模板错误与调试 概述 模板报错之所以经常出现几百行,不是因为真正存在几百个错误,而是因为编译器必须告诉你: 最外层调用了哪个模板 它实例化了哪个内部模板 内部模板又实例化了什么 最终哪个表达式不合法 最小示例 下面代码不能编译 模板代码什么时候被检查 模板通常经历以下阶段: 阶段...

STL_容器适配器:stack记录

STL_容器适配器:stack记录

bingliaolong C++ 11个月前 20 0

概述 首先,stack是一个容器适配器 理论上,任何提供了 push_back(), pop_back(), back()等操作的序列容器都可以作为 stack的底层容器 为什么默认是deque deque之所以成为默认选择,是因为它在以下几个方面取得了最佳平衡: 相对于vect...

C++_ 模板学习十

C++_ 模板学习十

bingliaolong C++ 2个月前 8 0

模板定制体系 概述 大型模板库必须解决一个核心问题 库作者写好了通用算法,但怎样允许用户为自己的类型提供特殊行为 C++ 中没有唯一的定制机制,而是形成了一组工具 机制 最适合表达 traits 这个类型具有什么静态信息 policy 这个组件采用哪一种行为策略 tag disp...

ASIO:学习一

ASIO:学习一

bingliaolong Asio 2个月前 28 0

同步 I/O:服务端 code 同步 I/O:客户端 code 异步I/O:服务端 code 异步I/O:客户端 code 定时器 code 线程池 code strand 概述 io_context::run() 可以被多个线程同时调用(线程池模式)。这时候多个 handler...

扫一扫二维码分享
繁