摘要: 说起模板元编程,估计不少人的第一反应都是充斥着各种递归的奇技淫巧,没错,这次我们就来对模板元这种屠龙之术进行初步窥探,看看能玩出什么花样出来。 小试牛刀 template <typename _Tp, typename... args> struct get_size { static conste 阅读全文
posted @ 2024-01-04 16:08 ChebyshevTST 阅读(260) 评论(0) 推荐(2)
摘要: C++作为一门静态类型语言,是需要程序员声明变量类型的。然而来到了C++11,auto的诞生使得变量声明变得及为方便,尤其是对于比较长的模板类型,auto一定程度上为代码编写者减轻了负担。到了C++23,突然来了个新特性:auto{x}/auto(x),这又是个什么东西,它的motivation又是 阅读全文
posted @ 2023-12-28 20:49 ChebyshevTST 阅读(391) 评论(2) 推荐(3)
摘要: 学算法阶段时不时会遇到一些递归的应用场景,例如DFS,二叉树等相关的题目,递归常常能大展身手。不过有意思的一件事情是,若我们把一些本该迭代的算法改成递归实现,会是什么样的情形。 这是一个很简单的矩阵加法的例子。 void matrixAdd(const std::vector<std::vector 阅读全文
posted @ 2023-12-19 22:03 ChebyshevTST 阅读(394) 评论(0) 推荐(1)
摘要: 或许你早已习惯了用printf来调试,亦或许你习惯了用IDE/GDB来调试。最近学习之余,发现了一个代码可视化的网站,它支持Python,C++,Java还有Javascript语言,其中Python支持到3.11,C++甚至支持部分C++20的特性!网站在这(https://pythontutor 阅读全文
posted @ 2023-12-11 22:09 ChebyshevTST 阅读(2932) 评论(0) 推荐(5)
摘要: 在此之前,先来回顾元编程当中的一个重要概念。 template<typename _Tp, _Tp __v> struct integral_constant { static constexpr _Tp value = __v; typedef _Tp value_type; typedef in 阅读全文
posted @ 2023-12-09 17:20 ChebyshevTST 阅读(185) 评论(0) 推荐(2)
摘要: Generic Types of Ranges 类型萃取从字面意思上来说其实就是帮助我们挑选某个对象的类型,筛选特定的对象来做特定的事。可以先来回顾一下以前的写法。 #include <vector> #include <iterator> int main() { std::vector v{1, 阅读全文
posted @ 2023-12-02 20:45 ChebyshevTST 阅读(121) 评论(0) 推荐(0)
摘要: using for Enumeration Values 对比一下C++20前后的区别: enum class State { open, progress, done = 9 }; // Before C++20 void print(State s) { switch (s) { case St 阅读全文
posted @ 2023-11-30 21:22 ChebyshevTST 阅读(338) 评论(1) 推荐(0)
摘要: sklearn是一个开源的机器学习库,支持不同种类的机器学习算法,并且提供了许多质量良好的数据集。假如我们想要得到一组环形数据集,借助sklearn的包很轻易就可以实现,不过换个角度思考,我们自己动手是否也可以生成一组数据,使之在散点图上环状分布;借助C++的random头文件以及一点高中数学知识, 阅读全文
posted @ 2023-11-23 16:02 ChebyshevTST 阅读(568) 评论(0) 推荐(2)
摘要: 说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Pooling在中文当中的意思是“池化”,在神经网络当中非常常见,通常用的比较多的一种是Max Pooling,具体操作如下图: 结合图像理解,相信你也会大概明白其中的本意。不过Pooling并不是只可以选取2x2的窗口大小,即便是3x3, 阅读全文
posted @ 2023-11-18 16:04 ChebyshevTST 阅读(169) 评论(0) 推荐(2)
摘要: 大家都知道队列是可以用数组来模拟的,可以先开辟一段定长的数组空间,然后分别使用两个变量head和tail来代指队列的头和尾,从而维护整个队列,相信到这里大家都比较熟悉。不过这种做法是有弊端的,比如说下图这种情况 假设经过不断地增删元素,Head和Tail已经来到了数组最后两个位置,这时候整个队列中只 阅读全文
posted @ 2023-11-11 20:35 ChebyshevTST 阅读(490) 评论(0) 推荐(4)