C++
文章平均质量分 91
0基础学习C++专栏
夜夜亮晶晶
一窍不通
展开
-
C++——智能指针
本文介绍了RAII思想,以及四种智能指针的底层实现思想,分别为C++98的auto_ptr、C++11的unique_ptr、shared_ptr、weak_ptr原创 2024-09-11 15:03:43 · 1058 阅读 · 0 评论 -
日志宏的编写与线程池的结合
简略的日志编写与线程池封装的结合原创 2024-07-16 21:57:35 · 1055 阅读 · 0 评论 -
C++11
C++11中的列表初始化、范围for、右值引用、移动语义、可变参数模板(参数包)、lambda表达式、包装器原创 2024-07-03 18:44:55 · 621 阅读 · 0 评论 -
STL库 —— unordered_set与unordered_map的封装
对HashBucket进行封装,使之兼容unordered_set与unordered_map,并完成unordered_set与unordered_map的简单功能原创 2024-05-26 22:54:57 · 1227 阅读 · 0 评论 -
C++数据结构——哈希桶HashBucket
哈希桶(Hash Bucket)是哈希表中用来存储哈希冲突的一个位置。当多个键通过哈希函数映射到同一个索引时,这些键值对被存储在同一个桶中。哈希桶通常采用链表或其他数据结构来存储这些冲突的元素。这种方法被称为“链地址法”,它允许多个键值对共享同一个哈希表索引,从而有效解决哈希冲突问题。原创 2024-05-26 17:37:33 · 1012 阅读 · 0 评论 -
C++数据结构——哈希表HashTable
详细介绍了哈希表的实现,包括哈希表的定义、插入、查找和删除功能的实现。作者解释了哈希表的内部结构,如何处理键值对,以及如何通过扩容来解决哈希碰撞问题。文章还详细讲述了如何对非整数键值进行哈希计算,特别是对于字符串键值使用BKDR哈希函数的方法。此外,还提供了完整的哈希表代码示例和测试用例,以帮助读者更好地理解和实践。原创 2024-05-24 21:49:48 · 954 阅读 · 0 评论 -
C++数据结构——红黑树
红黑树是一种自平衡二叉搜索树,通过节点的颜色属性(红色或黑色)以及一系列的规则,保证了其高度在最坏情况下为O(log N),从而确保了较高的查询、插入和删除效率。在本文中,我们将详细介绍红黑树的插入操作。原创 2024-05-15 23:29:44 · 960 阅读 · 1 评论 -
C++数据结构——AVL树
简单介绍了AVL树的结构和旋转机制原创 2024-05-13 18:38:42 · 1071 阅读 · 1 评论 -
STL库 —— priority_queue 的编写
粗略的介绍与编写优先级队列原创 2024-04-18 20:42:41 · 1042 阅读 · 0 评论 -
STL库 —— stack queue 的编写
关于C++ STL库中栈stack和队列queue的编写原创 2024-04-18 17:28:39 · 753 阅读 · 0 评论 -
C++典型例题切入数据存储
通过典型例题讲解有关C/C++内存地址空间的存放规则原创 2024-04-10 21:12:57 · 673 阅读 · 0 评论 -
STL库 —— list 的编写
从通俗易懂的方式切入,讲解list的底层,并一步步深入理解更深刻的内容原创 2024-04-10 19:47:17 · 1117 阅读 · 0 评论 -
Date类 —— 题目集锦
有关Date类的OJ题目原创 2024-04-09 10:55:12 · 398 阅读 · 0 评论 -
STL库 —— vector 的编写
手撕了一个比较粗略的vector原创 2024-04-07 23:04:22 · 834 阅读 · 0 评论 -
STL库 —— string 类的编写
由于历史遗留问题, string 早于 STL 出现,所以 string 并不能属于 STL 库,但是由于其特性和 STL 中的其他容器类似,所以我把它当作 STL 的成员之一。首先先创建一个 .h 头文件 和 .cpp 源文件:在 .h 文件中使用命名空间。原创 2024-04-05 22:20:58 · 621 阅读 · 3 评论 -
C++模板初阶
如果我们想要写一个 Swap 函数,但我们的参数类型可能不同,应该怎么写呢?x = y;y = tmp;x = y;y = tmp;x = y;y = tmp;当我们完成上面的函数时,会不会觉得有点太过繁琐?难道我们不能写一个 Swap 就可以让它实现不同参数的重载吗?其实是可以的,C++ 为我们提供的方法就是模板。类似于现实生活中的模具,我们使用的产品,如鼠标、键盘,成本之一就是开模,如果有了一个模具,各种各样的颜色、材质,都可以使用这一种模具来完成,这就极大的压缩了成本。原创 2024-04-03 00:14:32 · 711 阅读 · 0 评论 -
类和对象(3)——最终篇
static成员、友元、匿名对象原创 2024-03-01 15:02:48 · 793 阅读 · 0 评论 -
类和对象(2)——距离C++又近了一步
构造函数、析构函数、拷贝构造函数、赋值运算符重载原创 2024-02-29 22:50:18 · 1352 阅读 · 0 评论 -
类和对象(1)——开启C++学习之旅
类的定义、封装、类对象模型、this指针原创 2024-02-29 08:18:16 · 860 阅读 · 0 评论 -
C++入门
C++如何跟踪每一个重载函数呢?它给这些函数指定了秘密身份。使用 C++开发工具中的编辑器编和编译程序时,C++编译器将执行一些神奇的操作-名称修饰(name decoration)或名称矫正(nmmangling),它根据函数原型中指定的形参类型对每个函数名进行加密。请看下述未经修饰的函数原型:这种格式对于人类来说很适合;我们知道函数接受两个参数(一个为 int 类型,另一个为 float类型)并返回一个long值。而编译器将名称转换为不太好看的内部表示,来描述该接口,如下所示:?原创 2024-02-28 18:51:33 · 932 阅读 · 0 评论 -
C++命名空间
C++通过定义一种新的生命区域来创建命名空间,这样就可以提供一个声明名称的区域,这样的两个区域之间的名称不会发生冲突,而且程序的其他部分也可以使用该命名空间中声明的东西,定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{ }即可,{ }中即为命名空间的成员。1.命名空间可以定义变量/函数/类型。原创 2024-02-28 15:46:10 · 1011 阅读 · 0 评论