自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实现一个String类 - 自用

实现string类是基于字符数组的,因此需要导入必要的包cstring,cstring是C标准库头文件<string.h>的C++标准库版本,包含了C风格字符串(即’\0’结尾字符串)相关的一些类型和函数的声明。,这里涉及到两个字符串的拼接,用的是+,因此需要对+进行运算符重载。查了好多资料,照着别人的文档实现了一遍。到这里,main函数的前两条语句已经可以编译通过了。到这里,main函数的前三条语句已经可以编译通过了。控制台显示hello world。好了,已经可以实现题目的要求了。

2024-07-13 01:53:06 330

转载 stl的内存管理

在内存充足的情况下,第一个内存块会被返回给用户使用,从第二块内存块开始构建链接关系, 在内存不足的情况下,假如只分配到了一个区块,则该区块直接交给用户使用,freelist不进行更新。释放内存的过程相对简单,由第二级内存配置器分配的内存,在释放时并不交由free函数进行释放,也不放到内存池中,而是把内存加入到freelist链表中,以备下次使用,这个过程主要是简单的链表操作。时,只需简单地设置前8个字节的值。初始状态下,内存池是空的,内存区块也是不存在的,freelist 数组中保存的都是空指针。

2024-07-12 00:46:55 6

转载 C++中的cast

这些类型转换机制提供了C++中处理不同类型的灵活性和安全性,‌但使用时需要根据具体情况和编程规范谨慎选择。在C++中,‌四种主要的类型转换机制是:‌。

2024-07-11 01:22:09 6

原创 emplace_back(C++11)

也就是说一般情况下 emplace_back() 方法比 push_back() 方法效率高,原因是 emplace_back() 在向 vector 中插入元素时比 push_back() 少了一次移动构造或拷贝构造。emplace 关键字是 C++11 的一个新特性。在将新元素添加到容器时,会调用构造函数来初始化对象,而析构函数的调用则取决于容器的生命周期管理和元素的移除。问:emplace_back一个对象,构造了几次,析构了几次?答:既然提到构造析构,这里默认emplace_back的对象是。

2024-07-11 01:20:10 398

转载 c++中的ROV

ROV存在的目的是优化掉不必要的拷贝复制函数的调用。

2024-07-11 01:15:08 5

原创 c++中的加法

那么有的小伙伴可能就要说了,把这里的curnum++改成curnum = curnum + 1不就好了吗,其实这样也是会出错的,因为curnum = curnum + 1 也是先赋值,再加法的。就对了,因为这里需要判断的是curnum 在执行加法操作之后的值,而不是当前值。采用curnum++时,进行判断的是curnum的当前值,判断之后才会进行加法的操作,所以会出错。跟上面的不同,这里的加法是”原地“操作,但 ++ 是先执行赋值,再执行加法, 而 +1 先执行加法再执行赋值。思考一下这里为什么会出问题?

2024-06-30 16:05:36 169

原创 数据结构-哈希表

*拉链法要选择适当的哈希表(也就是映射表)的大小,**这样既不会因为数组(值的存储空间)空值而浪费大量内存,也不会因为链表太长而在查找上浪费太多时间。由值映射到索引的过程被称为哈希映射,采用的是哈希函数,哈希函数也就是映射的规则,但有时候不同的值会被映射到相同的索引下,将冲突的两个值用链表存储起来,还是跟原来的索引保持映射关系,这样就可以通过索引同时找到两个值。当新的值被映射到的索引已经被使用了,就转而寻找新的空位。为了更好的应用哈希表,推荐leetcode习题:1, 49, 128。

2024-06-30 14:09:05 256

原创 Cmake --自用

(动态库)两种形式。但引用dll需要有一个配套的的lib,通过lib插桩,运行时查到dll。这一点跟linux不太一样,因为linux链接.so不需要配套的.a。并且可以看到a.out链接到了这个动态库,此时将这个动态库删掉,程序报错。,可以看到a.out没有链接这个.a文件(静态库文件)可以看到在build文件夹下生成了.so(动态库文件)在build文件夹下生成lib.a文件(静态库文件),编译完成后,删去库仍然可以运行,如下图所示。window中常见的库文件有。注意他人提供的库,通常是作为动态库的。

2024-06-18 02:40:49 228

原创 C++函数模板和宏 - 自用

C++函数模板和宏

2024-05-24 11:39:37 309

原创 推荐系统学习-自用

在推荐系统中,输入通常是[用户,物品,评分], 数据类型为字符串或整数ID,与cv领域的图像不同,不能直接输入到神经网络中。因此需要对其进行embedding操作。embedding的目的是将稀疏的对象,转换成稠密的特征,使其能够使用深度学习进行处理。如何理解Embedding层。

2024-05-11 16:26:26 188 1

空空如也

空空如也

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

TA关注的人

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