会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
ChebyshevTST
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
下一页
2023年11月7日
让自定义的容器,也能基于范围循环
摘要: C++11起,引入了基于范围的for循环这一特性,有什么好处呢?它有时可以大大地简化遍历容器的操作,比如说STL的vector。 std::vector v{1, 2, 3}; std::vector<int>::iterator it = begin(v); for (; it != end(v)
阅读全文
posted @ 2023-11-07 21:36 ChebyshevTST
阅读(692)
评论(0)
推荐(1)
2023年11月2日
搓一个Pythonic list
摘要: 总所周知,Python语言当中的list是可以存储不同类型的元素的,对应到现代C++当中,可以用std::variant或者std::any实现类似的功能。而Python官方的实现当中用到了二级指针,不过抛开这些,我们也可以自己设计一个list的架构,实现多类型值的存储容器。 下图是自己实现的lis
阅读全文
posted @ 2023-11-02 15:33 ChebyshevTST
阅读(473)
评论(0)
推荐(2)
2023年11月1日
随机查找(一切看命)
摘要: 对于一个给定的数组,若要查找当中是否包含某个值,传统的方法是遍历数组中的每一个元素,如果找到则返回。如果学习过数据结构,也可以立马想到用哈希表来存储,哈希表的查找性能优异,一般可以达到O(1)的时间复杂度,在最坏情况下也有可能达到O(n)的复杂度。但是今天,我将带来一种有意思的查找方式,也就是通过随
阅读全文
posted @ 2023-11-01 18:50 ChebyshevTST
阅读(226)
评论(0)
推荐(0)
2023年10月27日
实现动态大数结构
摘要: 大数结构是一种常见的数据结构,在C++当中,我们常用vector来动态实现。除此之外,我们也可以仿照vector的思路,自己实现内存的动态分配,当内存容量达到上限时,用C-api realloc进行内存的重新分配。 #define REQUIRE2(p, q) assert((p) || (q))
阅读全文
posted @ 2023-10-27 23:11 ChebyshevTST
阅读(459)
评论(0)
推荐(1)
2023年10月11日
判断整数和复数的奇技淫巧
摘要: 记得大一学Python的时候,有一个题目是判断一个数是否是复数。当时觉得比较复杂不好写,就琢磨了一个偷懒的好办法,用异常处理的手段便可以大大程度帮助你简短代码(偷懒)。以下是判断整数和复数的两段小代码: 相信看到这里,你也有所顿悟,能拓展出更多有意思的方法~
阅读全文
posted @ 2023-10-11 10:07 ChebyshevTST
阅读(50)
评论(0)
推荐(0)
2023年10月5日
conditional_t和enable_if_t的实现
摘要: conditional_t和enable_if_t是元编程里面很相似却有有着一定区别的模板。形如conditional_t<_Cond, _If, _Else>是指如果_Cond表达式为true,则类型为_If,否则类型为_Else。而形如enable_if_t<_Cond, _Tp>是指如果_Co
阅读全文
posted @ 2023-10-05 19:53 ChebyshevTST
阅读(289)
评论(0)
推荐(0)
locate命令找不到,但是实际文件存在的情况
摘要: locate和find命令都是linux下常用的搜索命令,但是locate命令是从一个数据库里面搜索的,它的速度比find查找要快上不少。如果存在某个文件用locate查不到的话,那么可以用updatedb命令对数据库更新一下,就能解决问题了。 记录今天遇到的疑惑。
阅读全文
posted @ 2023-10-05 19:04 ChebyshevTST
阅读(371)
评论(0)
推荐(0)
2023年9月28日
向量化实现矩阵运算优化(一)
摘要: xsimd简介 xsimd是C++的一个开源simd库,实现了对常见simd指令的封装,从而使得simd的操作更为简单。接下来先从两个简单的例子来入门xsimd。 void average(const std::vector<double>& v1, const std::vector<double
阅读全文
posted @ 2023-09-28 16:06 ChebyshevTST
阅读(701)
评论(0)
推荐(1)
2023年9月26日
从优秀源码中学到的两个技巧
摘要: 设计一个不能被using的对象 在实际开发中为了避免命名空间污染,一般都不会using namespace std。但是如果一个对象写起来比较复杂,用using能大幅度地简化操作。现在假设我们要设计一个函数,它在一个作用域里面,使用它只能以A::B::C()这种形式。思考一下,如果我们放在命名空间下
阅读全文
posted @ 2023-09-26 20:01 ChebyshevTST
阅读(208)
评论(0)
推荐(0)
2023年9月21日
模板特化的多维度挖掘
摘要: 假如我有一个需求,就是如果传入的参数是int类型,我就输出int类型,否则就输出T。很显然,根据模板的基础知识,我们可以这么写 template <class T> void f(T) { std::cout << "T\n"; } template <> void f(int) { std::co
阅读全文
posted @ 2023-09-21 10:40 ChebyshevTST
阅读(76)
评论(0)
推荐(0)
上一页
1
2
3
4
5
下一页
公告