自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 C语言getopt函数使用方法

【代码】C语言getopt函数使用方法。

2024-01-06 17:57:49 425

原创 CSAPP_cache_lab

参考https://www.cnblogs.com/zhiyiYo/p/16284866.htmlhttps://xcraft.tech/2021/04/13/ICS/CacheLab/

2024-01-06 15:37:58 425

原创 Python日志处理(logging模块介绍)

logging模块是Python的一个标准库模块,由标准库模块提供日志记录API的关键好处是所有Python模块都可以使用这个日志记录功能。第一种方式是使用logging提供的模块级别的函数。第二种方式是使用Logging日志系统的四大组件其实,logging所提供的模块级别的日志记录函数也是对logging日志系统相关类的封装而已。logging模块定义的模块级别的常用函数函数说明创建一条严重级别为DEBUG的日志记录创建一条严重级别为INFO的日志记录。

2024-01-02 20:06:07 1076 3

原创 CSAPP_06 存储器的层次结构

Modified,已修改Exclusive,独占Shared,共享,已失效已修改代表该上的数据已经被更新过,但是还没有写到内存里。而已失效状态,表示的是这个里的数据已经失效了,不可以读取该状态的数据。独占和共享状态都代表里的数据是干净的,也就是说,这个时候里的数据和内存里面的数据是一致性的。独占和共享的差别在于,独占状态的时候,数据只存储在一个CPU核心的Cache里,而其他CPU核心的Cache没有该数据。这个时候,如果要向独占的Cache写数据,就可以直接自由地写入,而不需要通知其他CPU。

2023-12-05 16:39:17 386

原创 c++中的new和operator new

主要用于进行内存分配,根据影响范围的不同。的重载可分为全局重载和类级别的重载。

2023-11-24 15:42:31 431

原创 C++完美转发

提到完美转发,就有必要说一下,什么是转发,什么样的转发才称得上是完美转发。在C++中,转发指的就是函数之间的参数传递(例如函数f1接收了一个参数a,而后又将此参数a传递给了其函数体内调用的另一个函数f2而完美转发指的就是在函数之间传递参数的过程中,参数在传递后的属性保持不变(如左值仍是左值,右值仍是右值,const修饰也会保留)。

2023-11-23 10:11:38 718

原创 std::move源码分析

***/此函数用于将一个值转化为一个右值(注意这里没有说是左值还是右值)__t是任意类型的参数此函数最终会将__t转化为一个右值引用类型也是个函数模板,从名称上就比较好理解,即为移除引用。所以我们只想知道,它是如何移除引用的。我们来看下从上面的定义我们可以看到无论传入的是值类型(_Tp),左值引用类型(_Tp&)还是右值引用类型(_Tp&&),最终得到的都是_Tp类型,具体参考https://compiler-explorer.com/z/E86M68r3d。

2023-11-15 17:30:29 74

原创 shared_ptr和weak_ptr

参考实现简单的shared_ptrC++智能指针的enable_shared_from_this和shared_from_this机制用C++11 make_shared替代shared_ptr

2023-11-15 17:20:21 26

原创 《Effective Modern C++》学习笔记 - Item 9: 倾向于使用别名声明(alias declaration)而不是 typedef

typedefusingtypedefMyAlloc使用typedef,你就从头开始typedef的类型取决于T,是一个,编译器没理由确信它就一定会是个类型名。C++规定这种情况下要用关键字typename来声明其的确是类型。于是,typedef的解决方案相比typename和::type。

2023-11-14 15:12:31 37

原创 STL中的Allocator

参考C++ STL应用与实现】95: 如何使用Allocator

2023-11-14 11:12:22 20

原创 C++中的lambda表达式

在Lambda表达式中,如果以传值方式捕获外部变量,则函数体中不能修改该外部变量,否则会引发编译错误。那么有没有办法可以修改值捕获的外部变量呢?上面的例子,要么是值捕获,要么是引用捕获,Lambda表达式还支持混合的方式捕获外部变量,这种方式主要是以上几种捕获方式的组合使用。这些函数对象的一个用途是用作容器的排序条件。被捕获的值在lambda表达式创建的时候通过值拷贝的方式传入,因此随后对该变量的修改不会影响lambda的值。lambda可以使用其可见范围内的外部变量,但必须要在。

2023-11-10 17:42:46 24

原创 C++中的友元函数和友元类

结合着类的特性,可知:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。友元是一种定义在类外部的普通函数,但它需要在类体内进行声明,为了与该类的成员函数加以区别,在声明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。

2023-11-10 09:19:01 24

原创 csapp_lab01

这里需要通过反演律来消除。这个实验需要做的就是实现。,题目要求是不可以存在。

2023-11-02 11:42:15 36

原创 csapp_02读书笔记:信息的表示和处理

【代码】csapp_02读书笔记:信息的表示和处理。

2023-10-27 18:04:20 45

原创 字节序,bit序以及位域

如果将一个32位的整数0x12345678存放到一个整型变量(int) 中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。

2023-10-26 17:49:23 74

原创 RTTI和CAST

什么是RTTI?

2023-10-24 20:06:48 40

原创 虚函数内存布局解析

主要在于功能解耦合以及规范化的需要。我们很多时候需要做到:**一个模块对达成某个功能(机制)有一组可替换的实现(策略)。也就是说,需要策略和机制分离。那么我们的模块就应该只依赖这个机制的接口,而非这个机制的具体实现。,这是怎么实现的呢?中更加完善,它会告诉妳这是一个接口。,这里如果我们想在业务中使用。都生成了非虚的析构函数,直接。的功能,那么我们就必须把。可能导致释放不完全。

2023-10-23 10:41:12 85

原创 《Effective Modern C++》学习笔记 - Item 17:理解特殊成员函数的生成

参考item-17学习笔记cpp基础item-17中文翻译

2023-10-20 16:28:17 60

原创 关于左值、将亡值和纯右值

在C++11之前,表达式的值分为左值和右值两种,其中右值就是我们理解中的字面值等。自C++11开始,表达式的值分为左值()、将亡值()、纯右值(

2023-10-20 11:41:18 35

原创 《Effective Modern C++》学习笔记 - Item 1: 理解模板类型推导

对于一个复杂系统的用户来说,很多时候他们最关心的是它做了什么而不是它怎么做的。在这一点上,C++中的模板类型推导表现得非常出色。数百万的程序员只需要向模板函数传递实参,就能通过编译器的类型推导获得令人满意的结果,尽管他们中的大多数在被逼无奈的情况下,对于传递给函数的那些实参是如何引导编译器进行类型推导的,也只能给出非常模糊的描述。如果那些人中包括你,我有一个好消息和一个坏消息。好消息是现在C++最重要最吸引人的特性auto是建立在模板类型推导的基础上的。

2023-10-09 20:38:14 79

原创 NumPy常用函数

NumPyThe BasicsNumPy 主要面向的对象是齐次多维数组。在NumPy中维度(dimension)被称为轴(axe)。轴的个数即为秩(rank)。例如,一个坐标为[1, 2, 1]的点的秩为1,因为它只有一个轴,并且这个轴的长度为3。下面这个例子,这个数组的秩为2。第一个轴的长度为2,第二个轴的长度为3[[1,0,0],[0,1,2]]NumPy的数组类

2018-01-21 11:40:06 2386

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除