More than code

daily
daily

Daily C/C++ 并发编程基础

Daily C/C++ 并发编程基础 今天这篇文章是简要的介绍一下并发编程中的用于控制同步的对象 参考文章是CMU15445的project4中andy推荐的一篇文章 锁 锁是一个抽象的概念,用来保护资源的,当你持有锁的时候,你就可以去访问受保护的资源。当你没有持有锁的时候,你就不能去访问对应的资源 锁本身的含义也隐喻了独占的意味。当你尝试去获取一个锁,却失败的时候,要么你会阻塞住,一直等到你可以获得这个锁为止。要么你会返回一些错误码等东西来表示获取失败 最常见的一种就是简单的计数,一个锁可以有一个上限的值。当我们…

2021年10月6日 0条评论 614点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ 变参列表

Daily C/C++ 变参列表### Daily C/C++ 变参列表 昨天我发了一篇文章,里面有些许的涉及到了变参列表这个东西,今天就在这里好好说一下 参考文章 我们首先看printf,这个应该是我们平常用到的最多的函数之一了 /* Write formatted output to stdout from the format string FORMAT. */ /* VARARGS1 */ int __printf (const char *format, ...) { va_list arg; int d…

2021年10月5日 0条评论 545点热度 0人点赞 sheep 阅读全文
daily

Daily C/C++ C++异常机制

Daily C/C++ C++异常机制 参考文章 这篇文章需要一些前置的知识,是函数栈相关的。推荐先去看看《深入理解计算机系统》和《程序员的自我修养》 首先要明白,我们在调用函数的时候,会有一个抽象的概念叫栈帧。里面储存了我们在调用函数期间需要用到的各种信息,栈帧存储在栈中,递归调用的层数越多,栈帧也就会叠的越多,就有可能导致栈溢出,即stackoverflow 栈帧中储存的信息主要有函数的返回地址,函数参数,函数的局部变量等(其实如果观察过汇编的同学可以发现,我们在使用栈的过程中一般都会有一个rbp的寄存器,用来…

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

Daily C/C++ Dependent Names

Daily C/C++ Dependent Names 今天这个文章会比较短,提一下我今天写代码时遇到的一个小问题 先看这样一段代码 template<typename T> class A { protected: int number; } template<typename T> class B: public A<T> { public: void foo() { number = 10; } } 这段代码在编译的时候是会报错的 编译器会提示你,在B这个类中,找不到num…

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

Daily C/C++ Learn By Discovering ——— 探究partial_sum

Daily C/C++ Learn By Discovering ——— 探究partial_sum 今天这个文章可能会比较长,因为这里我想整理一下我在学习新东西的过程,如果在这个过程中能够总结一些相关的方法论,或者能够给他人带来启发就更好了。 学习这个东西,我个人还是感觉要有兴趣,有探索的欲望,这样才能不断的向深处挖掘。就像是树盘跟一样,一边向深处挖掘,一边去学习和总结在过程中遇到的一些小的点,这样不断积累,如果有一天,我们有幸读到了一些较为系统性的书,帮助我们整理之前的知识,就可以将这些知识系统化,从而获得比较…

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

Daily C/C++ Y组合子

Daily C/C++ Y组合子 参考文章 参考文章 这篇文章说实话我也是照葫芦画瓢,我还没有去看Y组合子的那篇官方的文章,这里只是给出一些用于实践上的理解 首先就是定义,Y组合子是一个特殊的高阶函数 y(f) = f(y(f)) 看起来定义蛮奇怪的,f和y都是参数为函数,返回值为函数的一个函数 当我们尝试展开的时候会发现,这个函数是无限展开的,我们正是利用了这个特点,来帮助我们写出递归函数 更准确的说,是lambda中的递归 因为我们都知道,lambda表达式是没名字的,所以我们无法在lambda表达式内部去调用…

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

Daily C/C++ output_container解析

Daily C/C++ output_container解析 这篇文章是来解析一下吴咏炜老师的output_container 代码 我这里也给出我的一个例子,用来帮助理解 int main() { std::pair p{1, 2}; std::cout << p << std::endl; std::vector vec{1, 2, 3, 4, 5}; std::cout << vec << std::endl; std::unordered_map<int…

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

Daily C/C++ 编译期计算

Daily C/C++ 编译期计算 今天这篇文章是有关模板元编程,也相当与是学习吴咏炜老师的课的一个笔记,参考文章在这里链接 首先就是一个结论,C++模板是图灵完全的,也就是说通过C++的模板,你可以在编译期间模拟一个完整的图灵机 先上一段代码 template <int n> struct factorial { static const int value = n * factorial<n - 1>::value; }; template <> struct factori…

2021年9月2日 0条评论 570点热度 0人点赞 sheep 阅读全文
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 阅读全文
12345
分类
  • 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