More than code

More Than Code
The efficiency of your iteration of reading, practicing and thinking decides your understanding of the world.
daily

Daily C/C++ 泛型编程入门

Daily C/C++ 泛型编程入门 参考文章:现代C++实战,Why Not Specialize Function Templates 首先提一个新的概念,鸭子类型 如果一只鸟走起来像鸭子、游起泳来像鸭子、叫起来也像鸭子,那么这只鸟就可以被当作鸭子 意思就是一个对象的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定 举个例子就是比如stl中的容器,他们大多数都支持push_back,size等方法,但是他们并没有去统一的继承一个基类(比如sizeableContainer,pushba…

2021年9月1日 0条评论 583点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 是否要返回对象

Daily C/C++ 是否要返回对象 首先说句题外话,发现自己最近基本上都只是在写每日一题,在此之外的代码都写的很少了,要及时恢复 这篇文章说一下有关返回对象的一些做法,指的是我们平常的实现等,而不是函数的设计 有关函数要不要返回对象,我认为就是该用的时候用,平常的话自己那个顺手用那个就行 然后是正文,参考文章 一个用来返回的对象,应该是可移动构造/赋值的,一般也是可拷贝构造/赋值的。如果这样的对象同时可以默认构造,那么就称其为半正则的对象。 当我们在没有优化的情况下,会出现函数体内的返回值首先拷贝给临时对象,然…

2021年8月31日 0条评论 498点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 随机数生成

Daily C/C++ 随机数生成 今天这篇文章主要讲一下新版本中C++的随机数生成 那具体有关理论部分这里就不细说了,主要说平常我们怎么用 参考文章自然就是cppreference了,大家可以自行查阅,在cppreference中搜random就行 那么可以看到,C++中的随机数库提供了两种东西,分别为均匀随机位生成器和随机数分布 那么随机位生成器就是用来生成一个随机数的,而随机数分布则是用给定的生成器生成对应的分布 根据介绍我们可以发现,随机位生成器是函数对象,那么也就是说我们用的是其作为函数的性质,即关注op…

2021年8月30日 0条评论 523点热度 0人点赞 sheep 阅读全文
ARTS

ARTS打卡 第十五周

ARTS打卡 第十五周 首先是算法,本周leetcode还是有很多有意思的题目的 题目 这道题的O(n)的做法还是比较好的,感觉是一个较有启发性的思路 然后是今天周赛的题目 题目 这个是求不同子序列的数量的一个变式,如果理解的清楚的话可以很容易把这个变式写出来。但是这道题的基础版,求解不同子序列的dp还是很有意思的。对于每一个数,如果他是第一次出现,那么他的贡献是前面所有子序列的和,因为前面的子序列都可以加上他来形成新的答案。同时他也可以自己为头,就再加上1。如果他不是第一次出现,那么我们需要减去他上一次出现所造成…

2021年8月29日 0条评论 500点热度 1人点赞 sheep 阅读全文
daily

Daily C/C++ 新版本C++中的易用性改进(2)

Daily C/C++ 新版本C++中的易用性改进 参考文章 自定义字面量,这个平常用的相对较少,这里就简单提一嘴 我们可以自己定义字面量,只需要我们重载operator""即可 这里举个例子 length operator"" _m(long double v) { return length(v, length::metre); } length operator"" _cm(long double v) { return length(v, length::centimetre); } 自定义字面量的要求就是…

2021年8月29日 0条评论 501点热度 0人点赞 sheep 阅读全文
未分类

Daily C/C++ 新版本中C++中的易用性改进

Daily C/C++ 新版本C++中的易用性改进 参考文章 首先就是auto,自动类型推导 auto可以帮助我们推导表达式的类型,同时这是编译期发生的事,所以和我们自己写类型是一样的,不过可以帮助我们写出更加通用简洁的代码 比如这段代码 template <typename T> void foo(const T& c) { using std::begin; using std::end; for (auto it = begin(c), ite = end(c); it != ite; +…

2021年8月28日 0条评论 504点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 迭代器

Daily C/C++ 迭代器 迭代器相信平常用stl稍微多一点的同学肯定都很熟悉了,这篇文章就是介绍一下基本的迭代器的概念,帮助理解还不是那么清晰的同学理解一下迭代器的概念 参考文章 如果是从C转过来学习C++的同学可能会发现,迭代器就很像是指针一样。是的,迭代器就是在容器中对指针抽象的结果,所以迭代器可以看作是C++的指针,但是对于内存不连续的容器来说,迭代器其实是拓宽了原本指针的功能 那么首先明确,迭代器实际上是一个规范,即如果一个类型满足了如下几个条件,就可以被看作是一个迭代器 1.对象可以被拷贝构造,拷贝…

2021年8月27日 0条评论 557点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 要用异常吗?

Daily C/C++ 要用异常吗? 首先说一下我个人的观点,我觉得是要用的,否则C++标准也就会抛弃掉这项特性了 C++标准容器库里面都会使用异常,我们平常使用的new也会抛出异常,所以我觉得我们要用,但是要用好异常,还要对异常有充足的了解 我感觉利用各种错误码来处理错误情况的缺点就是视觉效果很差,我们代码东一个判断,西一个判断,很容易就让人看的眼花缭乱 C++为我们封装好了很多要主动处理错误的情况,比如动态内存分配空间不够 同样的,C++的RAII特性也帮助我们可以更好的管理资源,当抛出异常的时候,我们如果在上…

2021年8月26日 0条评论 516点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 函数对象与容器

Daily C/C++ 函数对象与容器 今天来讲两个比较重要的函数对象less和hash 首先对于函数对象,理解成重载了operator()的一个类型即可 对于less,就是一个二元函数对象,用来执行任意类型元素值的比较,并且缺省行为是进行小于的比较操作 在cppreference中,有提到在特化为指针类型时候要满足全序关系,这个大家可以去自己查看 从C++14起,默认的特化类型就是void 可能的实现如下 constexpr bool operator()(const T &lhs, const T &a…

2021年8月25日 0条评论 523点热度 0人点赞 sheep 阅读全文
其他

ELF文件中segment的offset和paddr

ELF文件中segment的offset和paddr 大家如果有看过CSAPP的第七章,应该可以记得其中有说过一个段的地址和偏移之间的关系 注意这里说的段是可执行ELF的段(segment),而不是目标文件的段(section) 其中有讲到,对于地址addr和偏移offset,以及对齐align,有这样一个关系,即addr % algin == offset % align 不知道大家当初刚看到这一段的时候是不是也感觉非常迷惑,到底是为什么呢? 首先明确,这里的align指的是页对齐,而不是指定的段对齐,也就是说,…

2021年8月24日 0条评论 542点热度 0人点赞 sheep 阅读全文
1…1819202122…28
分类
  • ARTS
  • C++
  • CSAPP
  • daily
  • database
  • leetcode
  • linux
  • ml
  • nlp
  • paper
  • rocksdb
  • rust
  • ScummVM
  • tech
  • 其他
  • 周报
  • 未分类
  • 笔记
  • 算法
  • 计算机图形学
归档
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 7 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 4 月
  • 2023 年 2 月
  • 2023 年 1 月
  • 2022 年 9 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 9 月
  • 2021 年 8 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 1 月
  • 2020 年 12 月

COPYRIGHT © 2021 heavensheep.xyz. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS