C++初阶
文章平均质量分 90
lvy¯
大一在读,博客用来记录自己的每日所学所思~
展开
-
【C++】关联容器探秘:Map与Multimap详解
探索C++ STL中Map与Multimap的奥秘,从Pair的基本操作到Map的插入、遍历,深度解析Operator[]机制。对比Map与Unordered_Map,掌握Multimap特性和使用技巧,包括删除操作,全面理解关联容器应用原创 2024-07-23 23:16:05 · 712 阅读 · 3 评论 -
【C++】详解 set | multiset
本文探讨了C++标准模板库中set与multiset容器的使用,涵盖构造、插入、查找、删除等基本操作,并解析lower_bound、upper_bound及equal_range函数的高效区间搜索机制,为高效数据管理提供实战指南。原创 2024-07-22 21:12:52 · 954 阅读 · 8 评论 -
15. 【C++】详解搜索二叉树 | KV模型
为了更好地理解 map 和 set 的特性,和后面讲解查找效率极高的平衡搜索二叉树,和红黑树去实现模拟,所以决定在这里对搜索二叉树进行一个讲解~原创 2024-07-19 15:18:22 · 1397 阅读 · 81 评论 -
13. C++继承 | 详解 | 虚拟继承及底层实现
深入解析了C++中继承的核心概念,涵盖定义、作用域规则、成员函数、友元与静态成员处理,以及复杂议题如菱形继承和虚拟继承,辅以反思与常见问题解答。原创 2024-07-18 22:38:20 · 1075 阅读 · 54 评论 -
12.C++模板进阶 | 代码膨胀
探索C++模板的世界,从基本概念到高级技巧,包括非类型模板参数的使用、模板特化的细节、以及模板在分离编译场景下原创 2024-07-17 16:31:49 · 1322 阅读 · 12 评论 -
【C++】手动模拟String底层与深浅拷贝
总体整理了两张思维导图,XMind资源已经上传啦,可以按需下载~模拟实现string是为了更好的理解string函数的使用。原创 2024-06-05 17:18:47 · 366 阅读 · 2 评论 -
10.STL中stack和queue的基本使用(附习题)
快一起来学习stack和queue吧原创 2024-05-24 11:02:40 · 2042 阅读 · 84 评论 -
9.STL中list的常见操作(图文并茂)
快来学习list的使用吧原创 2024-05-18 11:58:17 · 1821 阅读 · 23 评论 -
8.STL中Vector容器的常见操作(附习题)
总结了vector的基本操作和增删查改,并介绍了Leetcode习题136和118.原创 2024-05-17 11:46:29 · 1283 阅读 · 50 评论 -
7.C++中string的一些超常用函数 (附习题)
本文总结了find、atoi、to_string、getline等函数的用法,并介绍了LeetCode习题387和125。原创 2024-05-14 11:39:02 · 1506 阅读 · 50 评论 -
7.学习STL和string类:版本、组件、构造、操作及应用
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架。原创 2024-05-11 21:30:34 · 2023 阅读 · 71 评论 -
6.C++模板(超全)
在编译器编译阶段,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供调用。如果类型不匹配,编译器会尝试进行隐式类型转换,如果无法转换成功编译器将会报错,但编译器的转化是不确定的,所以不要把未知交给编译器。1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数。1. 一个非模板函数可以和一个同名的函数模板同时存在,而且该函数模板还可以被实例化为这个非模板函数。用不同类型的参数使用函数模板时,称为函数模板的实例化。,那将会节省许多头发。原创 2024-05-01 17:09:59 · 1334 阅读 · 9 评论 -
5.C++动态内存管理(超全)
/ new/delete 和 malloc/free最大区别是 new/delete对于// 【自定义类型】除了开空间还会调用构造函数和析构函数int main()free(p1);delete p2;free(p5);打印出来的部分效果如图注意:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会。3.3。原创 2024-05-01 11:51:46 · 1486 阅读 · 33 评论 -
4. C++类和对象(下)
在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化,构造函数体中的语句只能将其称为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值。原创 2024-04-27 23:50:37 · 651 阅读 · 7 评论 -
3.C++类和对象(中)
1.类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。默认成员函数:用户没有显式实现,成员函数称为默认成员函数。2.构造函数2.1概念对于以下Date对于Date类,可以通过 Init 公有方法给对象设置日期,但如果每次创建对象时都调用该方法设置信息,未免有点麻烦,那能否在对象创建时,就将信息设置进去呢?构造函数是一个特殊的成员函数,原创 2024-04-26 19:51:14 · 1068 阅读 · 3 评论 -
2.C++类和对象(上)
1.oj:声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::类的命名规则:一般在成员变量前加_,来区分赋值,例如 _year= year,这样就区分开了。原创 2024-04-25 09:32:05 · 1176 阅读 · 2 评论 -
1.C++入门(下)
auto修饰具有自动存储的局部变量,作为一个新的类型指示符来指示编译器,auto声明的变量在编译时期推导而得int main()int a=10;auto b=a;//会自动存储b为int型注意:auto变量必须初始化。原创 2024-04-24 16:05:21 · 909 阅读 · 0 评论 -
1.C++入门(中)
以值作为参数或者返回值类型,在传参和返回期间,函数不会直接传递实参或者将变量本身直接返回,而是传递实参或者返回变量的一份临时的拷贝,因此用值作为参数或者返回值类。文件中没有 Add 的函数地址,因为 Add 是在 b.cpp 中定义的,所以 Add 的地址在 b.o 中。可以知道,【当前 a.cpp 中调用了 b.cpp 中定义的 Add 函数时】,编译后链接前, a.o 的目标。),相当于是一个将d拷贝到临时变量中,再拷贝到rd中,所以rd接收到的是一个常量性数值,要加const。原创 2024-04-23 09:14:43 · 997 阅读 · 1 评论 -
1.C++入门(上)
使用到namespace命名空间的名字{ }1.正常的命名空间定义2.命名空间可以嵌套3.同一个工程中允许存在多个相同的命名空间,编译器最后会合成到一个空间中ps: 一个工程中的.h和上面的.cpp中两个N1会被合并成一个注意:一个命名空间就定义了一个新的作用域。原创 2024-04-22 23:21:29 · 1518 阅读 · 2 评论 -
0.什么是C++(专栏前言)
20世纪80年代,计算机界提出oop(object oriented programming:面向对象)思想,支持面向对象的程序设计应运而生。1982年,本贾尼在c语言的基础上引入并扩充了面向对象的概念,命名为C++。C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可进行面向对象的程序设计C++祖师爷--本贾尼 的照片。原创 2024-04-22 18:11:52 · 362 阅读 · 1 评论