
C++
文章平均质量分 97
小镇敲码人
春风得意马蹄疾,一日看尽长安花。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【DS】之哈希表及其模拟实现(二)
由于我们用拉链法处理冲突,所以需要一个类似单链表的类型,也可以使用库里面的`List`,这里我们使用自己实现的单链表,更好调试。原创 2024-12-29 22:28:34 · 720 阅读 · 0 评论 -
【DS】之哈希表及其模拟实现(一)
在线性结构或者红黑树结构中,我们查找一个数据通常需要$O(N)$,O($log_2 N$),搜索的效率取决于比较的次数。它们的关键码和存储位置没有建立联系,所以通常查找不太高效,而哈希表可以不经过任何比较,一次直接从表中得到要搜索的元素。原创 2024-12-29 22:27:07 · 965 阅读 · 0 评论 -
【哈希的常见应用】之位图和布隆过滤器
我们利用C++模板可以传整数的语法特性,在创建位图结构的时候,就给位图传上一个无符号整型值`N`,这个值表示位图结构标记值的最大值。我们使用`vector`来作为位图结构的底层数据结构,`vector`的大小是N/32+1,因为要考虑不能整除的情况,我们干脆都加一个1。原创 2024-12-29 22:22:23 · 1299 阅读 · 0 评论 -
【C++进阶】之C++11的简单介绍(三)
包装器是functional头文件中封装的一个类模板。Ret是函数的返回值,Args是参数包,也就是函数的一系列参数。我们只需要了解包装器的使用即可,对于其底层不用过多研究。下面介绍function//函数//仿函数对象class f2public://普通类class f3public:int main()//包装函数//包装仿函数对象两种方式//方式1//它的底层我们不关心如何实现//包装类中的静态函数//包装类中的普通成员方法。原创 2024-10-24 17:06:26 · 893 阅读 · 0 评论 -
【C++进阶】之C++11的简单介绍(二)
B b;这里我们将a move后,它返回一个右值,如果它的成员是左值,应该可以修改和取地址,最关键的是看取地址,因为const如果你没有实现移动赋值重载,且没有实现析构函数 、拷贝构造、拷贝赋值重载、移动构造中的任意一个。那么编译器会默认生成一个移动赋值重载函数,对于内置类型它是逐字节赋值。原创 2024-10-24 17:06:17 · 880 阅读 · 0 评论 -
【C++进阶】之C++11的简单介绍(一)
C++98中,标准允许使用花括号对数组和结构体对象进行初始化。C++11之后,扩大了{}的使用范围,可以对所有的内置类型和自定义类型使用{},还可以省略。new对象的时候初始化也可以使用{}。看下面这段代码,思考使用{}class Datepublic:_day(day)private:int _year;int _month;int _day;int main()运行结果:只调用了构造函数,这是优化后的结果。原创 2024-10-24 17:06:10 · 600 阅读 · 0 评论 -
【C++11】之异常处理
实际项目于开发中,公司的项目组都会定义自己的异常,因为库里面的异常体系可能在命名上和项目的需求不太一致。大家抛出的都是派生类异常的对象,使用基类来捕获就行了。(利用多态public:id_(id)protected://错误描述int id_;//错误编号//继承和多态public:sql_(sql)string str;return str;return str;原创 2024-10-24 16:33:14 · 962 阅读 · 0 评论 -
【C++11】之智能指针
内存泄漏就是程序在运行的过程中,一直在申请内存,但是使用完内存忘记释放内存了,直到程序挂掉才会释放掉内存的行为。auto_ptr引用计数就是一个计数器,在string类的深拷贝问题中,我们提到过,写时深拷贝,但是只读的情况,我们不用拷贝,调用拷贝构造时将count++,执行浅拷贝,析构时count--,也解决了浅拷贝多次析构同一空间的问题,这里是相似的思路。原创 2024-10-24 16:29:00 · 855 阅读 · 0 评论 -
C++类型转换
const_cast和。转换运算符用途编译时检查运行时检查安全性典型使用场景基本数据类型转换、相关类型间的转换(如类层次结构中的向上转换)是否中等(依赖于程序员的正确使用)将int转换为float,将基类指针转换为派生类指针(需确保安全)在类的继承体系中进行安全的向下转换,以及多态类型间的转换是是(对于指针和引用类型的向下转换)高将基类指针或引用安全地转换为派生类指针或引用const_cast添加或移除constvolatile限定符是否中等(依赖于程序员的正确使用)将。原创 2024-10-24 16:24:44 · 731 阅读 · 0 评论 -
C++之特殊类设计
我们还可以将析构函数私有,在栈上创建的对象会自动调用析构函数,就会报错。在堆上创建的对象的析构,可以通过在类里面开放一个方法,执行。(不属于类,但是受类域限制,属于静态区)。它禁止拷贝构造和赋值构造,并把构造函数私有。下面这个类只能在堆上创建对象,我们通过让构造函数私有、删除拷贝构造函数和赋值构造函数实现,对外构造对象只开放一个。函数,这个函数会返回一个指针,它是在堆上申请空间的。这个类通常用帮助我们来输出某个变量的值。,是可以访问到私有的成员函数的。就是这个类创建的全局变量。设计一个类,不能被拷贝。原创 2024-10-24 16:22:53 · 767 阅读 · 0 评论 -
C/C++程序预处理与环境
FILE__ //进行编译的源文件LINE_ //文件当前的行号DATE_ //文件被编译的日期TIME_ //文件被编译的时间STDC_ //如果编译器遵循ANSI C,其值为1,否则未定义ANSI C,这个标准还叫做C89标准(也有人称为C90).// 打印当前代码行号// 打印当前源文件名(不包含路径)// 打印编译日期(格式为 Mmm dd yyyy)// 打印编译时间(格式为 hh:mm:ss)原创 2024-10-24 16:21:02 · 917 阅读 · 0 评论 -
【揭开多态面纱】:C++的高级探索
虚函数是在类中被virtual关键词修饰的函数,这种函数是在多态中出现的,可以在子类中完成重写。在我们面向对象语言中,这里是C++,多态是出现在继承中的,指的是在不同继承关系中的对象,调用同一函数,所产生的结果不同。必须通过基类的指针或者引用调用虚函数。被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。首先可以确定的是,两个函数最多同时满足这三种一种。两个函数的行为构成条件重写(覆盖)原创 2024-06-17 23:51:08 · 1159 阅读 · 2 评论 -
【C++继承解密】:构建层次化设计的艺术
继承是C++面向对象的三大特性之一,因为我们在实际生活中,某些对象会有一些相同的特征,如果我们都用代码分别创建一个类出来就会导致代码冗余,所以继承是体现了面向对象的层次性,派生类作为子类去继承父类的一些行为和方法,大大减少了代码冗余。派生类(子类)如何去继承一个父类呢?上面代码,A为派生类(子类),public代表着继承方式,B就是我们的父类(基类)。原创 2024-06-14 12:48:10 · 908 阅读 · 2 评论 -
【掌握C++模板进阶】:高级编程的艺术
一个程序由很多源文件组成,要将所有的源文件单独编译生成目标文件,最后再将这些目标文件链接起来生成单一可执行文件的过程叫做分离编译。原创 2024-06-14 12:47:43 · 666 阅读 · 0 评论 -
【C++初阶探秘】模板基础与内存管理双剑合璧,让你轻松驾驭C++编程新世界
/ 定义一个名为Stack的类public:// Stack类的构造函数,默认参数为3// 构造函数的具体实现没有给出,这里应该初始化栈的相关成员变量// 但由于代码中没有具体实现,这里仅是一个空实现// Stack类的析构函数~Stack()// 析构函数的具体实现没有给出,这里应该释放栈占用的资源// 但由于代码中没有具体实现,这里仅是一个空实现int main()// 使用new关键字动态分配一个Stack对象的内存,并将地址赋值给指针a。原创 2024-04-10 07:43:34 · 838 阅读 · 3 评论 -
【C++初阶】之类和对象(中)
编译器为了防止你乱搞,会报错的。上面是全局的运算符重载函数。原创 2024-03-28 17:31:44 · 1407 阅读 · 43 评论 -
【C++初阶】之类和对象(下)
📃博客主页:💞🚀🌏任尔江湖满血骨,我自踏雪寻梅香。万千浮云遮碧月,独傲天下百坚强。男儿应有龙腾志,盖世一意转洪荒。莫使此生无痕度,终归人间一捧黄。🍎🍎🍎❤️什么?你问我答案,少年你看,下一个十年又来了 💞 💞 💞前言:本篇博客接上篇类和对象中。接着来跟着博主学习C++类和对象下的一些特性吧!原创 2024-03-28 17:31:21 · 2627 阅读 · 82 评论 -
【C++初阶】类和对象(上)
【C++初阶】类和对象(上)原创 2023-11-05 23:59:36 · 504 阅读 · 28 评论 -
【C++初探:简单易懂的入门指南】三
宏定义的优点不用开栈帧,直接展开,节省了时间宏定义的缺点1.不能调试。原创 2023-10-31 01:04:13 · 279 阅读 · 7 评论 -
【C++初探:简单易懂的入门指南】二
❤️博客主页:🍏🌞任尔江湖满血骨,我自踏雪寻梅香。万千浮云遮碧月,独傲天下百坚强。男儿应有龙腾志,盖世一意转洪荒。莫使此生无痕度,终归人间一捧黄。🍎🍎🍎❤️什么?你问我答案,少年你看,下一个十年又来了 💞 💞 💞。原创 2023-10-30 00:40:58 · 1212 阅读 · 62 评论 -
【C++初探:简单易懂的入门指南】一
定义命名空间需要使用namespaceprintf("今天是美好的一天\n");int val;}Stu;这里就是定义了一个叫Date的命名空间,里面放着3个临时变量和一个函数,一个struct类型。原创 2023-10-28 13:28:57 · 341 阅读 · 14 评论