- 博客(19)
- 收藏
- 关注
原创 用户定义字面量
用户定义字面量是用户指定的类型的常量值用户定义整数字面量,例如 12_km用户定义浮点字面量,例如 0.5_Pa用户定义字符字面量,例如 'c'_X用户定义字符串字面量,例如 "abd"_L 或 u"xyz"_M。
2024-03-03 12:50:11 623 1
原创 C++默认实参
对于非模板类的成员函数,类外的定义中允许出现默认实参,对于模板类的成员函数,所有的默认实参必须在成员函数的初始声明处提供。f重定义了默认实参,而C通过添加默认实参将其变为默认构造函数,使得程序非良构。类似这种结构,但是也存在例外,当该参数右边有默认实参的时候可以添加默认实参。默认实参一般是在最右边。
2024-02-28 17:36:56 564 1
原创 CMU15-445 2023 spring p1
对于task1主要就是对LRUK算法的理解,当时我写的时候也是把算法理解错了,花了很多时间才发现。这里对于Evict,首先是在访问次数小于k的里面寻找,找到当前第一次访问的时间戳最小的,如果is_evictable为true的话就将其驱逐,如果没有找到,再在大于等于k的里面寻找最近一次访问往前k次的时间戳为最小的。否则的话通过调用task1写的Evict判断得到一个page,若是不能则返回nullptr,当能够得到一个page的时候,首先判断删除的page是否为脏页,如果是脏页需要写回磁盘。
2023-11-26 23:54:28 261
原创 用c语言编写shell
: 检查chdir的返回值,如果不是0,表示发生错误。chdir(args[1]): 使用chdir函数改变当前工作目录为参数args[1]指定的目录。总的来说,这个函数使用 fork 创建一个新进程,子进程使用 execvp 执行指定的命令。父进程获得子进程的ID,而子进程获得0。这两个函数分别实现读取一整行和将字符串拆分,具体细节原作者提供了注释,我也加上了我自己的注释。当我们在写好的shell中输入一段可执行程序的地址,它将调用这个函数,然后在执行程序。}: 如果提供了参数,则执行这个块的代码。
2023-11-14 20:58:21 466
原创 C++内联函数
inline但是如果你加上关键字inline这个函数也不一定就是内联函数。如果这个函数过于复杂或者是递归的情况,编译器就不会认为其是内联函数。
2023-11-08 12:18:01 110 1
原创 【侯捷--面向对象高级开发】笔记
在上面_doapl中返回的声明说的是返回一个reference但是最后返回的是一个指针(也就是一个指针指向的对象,),这里就是的一个好处,传递者无需知道接收端为什么形式(value 或者是 reference)如果将其改为那么传递者就必须知道接收端需要一个指针类型再看运算符重载的部分,如果只是c1+=c2,那么写成即可但是设计者考虑到了 c1+=c2+=c3这种情况。
2023-11-02 00:45:58 43
原创 CMU15-445 2023 spring p0
在写入时复制 trie 中,操作不会直接修改原始 trie 的节点。相反,将为修改后的数据创建新节点,并为新修改的 trie 返回新的根。需要注意的是遍历到最后一个点的时候需要通过dynamic_cast将父类指针转换为子类指针。Remove的思路和Put有些类似也是将出现的结点存入栈中,遍历到最后如果该点的children为空,则将该点释放,如果该点有value则删除value。这里还是通过遍历std::string_view key当该结点没有的时候就停下,同时需要将已有的结点存入栈中用于之后的复制。
2023-10-18 00:26:04 352 1
原创 左值,右值
左值是可以放在等号左边,可以取地址,具名的变量名,返回左值引用的函数,前置自增自减,赋值元素与复合赋值运算,解引用int i = 0;++i = 10;//以上几种等号左边的都为左值右值是智能在等号右边,不能取地址,不具名一种是纯右值,一种是将亡值纯右值:字面值,返回非引用类型的函数调用,后置自增自减,算数表达式,逻辑表达式,比较表达式……int i = 10;//10是一个字面值也就是一个纯右值class T{T creatT();T temp;return T;
2023-10-09 22:11:34 32 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人