dao_shadow
码龄1年
关注
提问 私信
  • 博客:7,430
    7,430
    总访问量
  • 17
    原创
  • 87,778
    排名
  • 95
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2023-10-12
博客简介:

dao_shadow的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    2
    当前总分
    178
    当月
    0
个人成就
  • 获得174次点赞
  • 内容获得5次评论
  • 获得153次收藏
创作历程
  • 16篇
    2024年
  • 1篇
    2023年
成就勋章
TA的专栏
  • C++入门
    9篇
  • C语言
    1篇
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

186人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++:哈希表和unordered系列容器

在C++98中,STL提供了底层为红黑树的一系列关联式容器,查询效率为log2N,即便在最差情况下也仅需要比较红黑树的高度次,所以当树中的节点非常多时,查询效率也不是很理想。它通过一个计算键值的函数(散列函数)来将所查询的数据映射到哈希表中的一个位置来查找该位置的内容,从而达到快速查找的目的。3. 在内部,unordered_map没有对<key, value>按照任何特定的顺序排序, 为了能在常数范围内找到key所对应的value,unordered_map将相同哈希值的键值对放在相同的哈希桶中。
原创
发布博客 2024.08.24 ·
668 阅读 ·
24 点赞 ·
0 评论 ·
9 收藏

C++:红黑树

_col(RED){}分析构建的新结点究竟设置成红色还是黑色好一点,取决于以上的规则三和规则四。首先我们要知道,插入这个节点之前该树一定是一棵正确的红黑树,必然满足上面的两个规则,如果我们新插入的节点默认选择黑色的话,那么凭空多出来的黑色节点必然会导致规则2被破坏,也就是说我们每插入一次就要去调整。但如果选择的是红色的话,如果红色结点的父亲节点是黑色,那么就不需要进行调整,如果父亲节点是红色才要进行调整。
原创
发布博客 2024.08.14 ·
739 阅读 ·
16 点赞 ·
0 评论 ·
29 收藏

C++:AVL树

private:public://成员函数//...
原创
发布博客 2024.08.10 ·
308 阅读 ·
5 点赞 ·
0 评论 ·
8 收藏

C++: map和set的使用

1. set是按照一定次序存储元素的关联性容器2. 在set中,键值对为<value,value>,并且每个value都是唯一的。set中的元素不能在容器中直接修改,但是可以从容器中插入或删除它们,从而间接修改。3. 在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则(不允许存在相同的关键字)进行排序。4. set在底层是用红黑树实现的。
原创
发布博客 2024.08.04 ·
997 阅读 ·
30 点赞 ·
0 评论 ·
15 收藏

DS:二叉搜索树

每个节点都有一个唯一的键值。左子树上所有节点的键值小于它的根节点的键值。右子树上所有节点的键值大于它的根节点的键值。左、右子树也分别是二叉搜索树。这种结构使得二叉搜索树在进行查找、插入和删除操作时,平均时间复杂度达到O(log n),是一种高效的查找树。按照这样存储数据,将二叉搜索树进行中序遍历后,结果是升序的。
原创
发布博客 2024.08.01 ·
286 阅读 ·
7 点赞 ·
0 评论 ·
3 收藏

C++:多态

重写的条件比隐藏更高,重写是一种特殊的隐藏在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。纯虚函数强制子类必须重写虚函数!是一种强制性的要求!如果不重写,自己也和抽象类父类一样无法实例化出对象!!
原创
发布博客 2024.07.17 ·
592 阅读 ·
20 点赞 ·
0 评论 ·
17 收藏

C++:继承

1、格式:2、继承方式和访问限定符:继承方式和访问限定符都存在公有(public)、保护(protected)、私有(private)这三种继承模式。3、 继承基类成员访问方式的变化总结:1、 基类的私有成员在子类都是不可见。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。基类的其他成员在子类的访问方式 = min(成员在基类的访问限定符,继承方式) ,其中 public > protected> private。
原创
发布博客 2024.07.12 ·
512 阅读 ·
23 点赞 ·
0 评论 ·
10 收藏

C++基础入门之stack(栈)和queue(队列)

1、栈是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。插入端被称为栈顶,相对地,另一端称为栈底。栈中没有元素时,称为空栈。2、栈的底层容器可以是其他的容器类模板或者一些其他特定的容器类。例如list,vecto,deque。在默认情况下没有为stack指定容器,则一般是使用deque;1、队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
原创
发布博客 2024.06.03 ·
245 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

从零开始vector的C++模拟实现

第二个参数const T& value = T(),T()是一个临时对象并且它没有名字(即匿名对象),我们前面用value引用,后面的匿名对象赋值的中间临时变量赋值给value,因为临时对象具有常性,所以这里我们在参数中应该用const修饰.拷贝构造函数需要在起始位置开一个空间和v一样大小的空间即可,然后把v中的数据一个一个拷贝过去。(深拷贝)因为当vector中储存的是自定义类型时,进行浅拷贝只是简单的字节拷贝,会析构两次,程序崩溃。是指向总容量的最后的下一个位置的迭代器。是指向首地址的迭代器,
原创
发布博客 2024.05.25 ·
386 阅读 ·
5 点赞 ·
0 评论 ·
8 收藏

C++基础入门(模板)

不管是类模板或是函数模板,都不是真正的类或函数,只是一个编译器用来生成代码的模具。模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程。对于函数模板而言,模板实例化之后,会生成一个真正的函数。而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始化。模板的实例化分为隐式实例化和显示实例化。不同类型所调用的模板函数是不同的函数。
原创
发布博客 2024.04.23 ·
206 阅读 ·
7 点赞 ·
0 评论 ·
5 收藏

C++基础入门(动态内存管理)

mallocrealloccolloc1、开辟一个新的空间,不对空间进行初始化和任何操作;更改动态分配的内存大小。注意:如果想扩容的空间还没有开辟空间,那么realloc的用法就等价于malloc。如果将内存块移动到新位置(异地扩容),之前内存块的内容也会随之转移到新的位置.但新的部分是未被初始化的.与之间的不同点是,malloc 不会设置内存为零,而 calloc 会设置分配的内存为零。
原创
发布博客 2024.04.22 ·
418 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

C++基础入门(初始化列表)

成员变量初始化的顺序就是成员变量在类中的声明次序,与初始化列表中的先后次序无关。//先声明_a2int _a1;//后声明_a1A aa(1);aa.Print();运行结果:因为先声明—_a2,所以_a2是随机值,_a1=1;所以建议声明和初始化列表的初始化顺序一致。
原创
发布博客 2024.04.18 ·
275 阅读 ·
7 点赞 ·
1 评论 ·
5 收藏

C++基础入门(六个默认成员函数)

1、默认构造函数(Default Constructor):如果我们没有定义任何构造函数,编译器将会生成一个默认构造函数。默认构造函数不接受任何参数,并且执行成员变量的默认初始化。在很多情况下,这可能是合适的,但如果类的成员需要特定的初始化值,可能需要显式定义构造函数。2、析构函数(Destructor):如果我们没有提供析构函数,编译器会生成一个默认的析构函数。默认析构函数会释放对象所占用的内存,如果对象包含有指针成员,可能不会正确地释放内存或执行其他必要的清理工作。
原创
发布博客 2024.04.15 ·
855 阅读 ·
8 点赞 ·
1 评论 ·
26 收藏

C++基础入门(引用,内联)

5.在sizeof含义下,引用的大小是引用类型的大小,而地址的指针大小始终是地址空间所占字节大小的个数(64位平台下是8个字节,32位平台下是4个字节);指针和引用都是地址的概念,指针指向一块内存,它的内容是所指内存的地址;引用不是新定义一个变量,而是给已存在变量取一个别名,编译器不会为引用变量开辟内存空间,3.引用在初始化引用一个实体后,不能在引用其他实体,而指针可以改变指向;6.引用自加则引用的实体增加1,指针自加,即指针向后偏移一个类型的大小,3.引用一旦引用一个实体,不能再引用其他实体。
原创
发布博客 2024.04.02 ·
336 阅读 ·
10 点赞 ·
1 评论 ·
1 收藏

C++基础入门

命名空间的定义需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。int a=6;int b=10;//...代码声明;// 第二个命名空间值得一提的是,在一个工程中如果存在多个名字相同的命名空间,编译器最后会合成同一个命名空间中。
原创
发布博客 2024.03.30 ·
390 阅读 ·
6 点赞 ·
0 评论 ·
8 收藏

数据结构——快速排序

快速排序算法是对冒泡排序算法的一种改进算法,在当前所有内部排序算法中,快速排序算法被认为是最好的排序算法之一。
原创
发布博客 2024.03.24 ·
147 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

字符串函数

比较两个c字符串的首位元素,如果首元素相同则比较下一位,直至不同或者字符串结束。str2:比较的字符串2。该函数返回一个指向最终的目标字符串 dest 的指针。该函数返回一个指向最终的目标字符串 dest 的指针。2.2函数功能:将字符串src拷贝到dest中。1.3函数参数:str1:比较的字符串1。1.2函数功能:比较两个字符串。所指向的字符串追加到。所指向的字符串的结尾。
原创
发布博客 2023.12.15 ·
52 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏
加载更多