
C++
文章平均质量分 83
矛取矛求
做事不无奈,心中有姿态。
展开
-
STL c++ 详解——stack和queue 的深度解析和实践指南
stack和queue的介绍与使用,配合string和list与vector的好处原创 2025-04-14 04:41:45 · 59 阅读 · 0 评论 -
STL c++ list——模拟实现
list是一个带头双向循环链表因需要实现一个节点类,其中包含哨兵位(用来标识位置),节点信息(val数据,prev后指针,next后指针)全缺省 T()原创 2025-04-08 21:14:57 · 1494 阅读 · 15 评论 -
C++ STL 详解 ——list 的深度解析与实践指南
list提供了多种灵活的定义方式。可以构造一个空容器,如,用于后续动态添加元素。也能创建一个包含指定数量且值相同的元素的容器,像,这里的lt2就包含了 10 个值为 2 的元素。通过拷贝构造,能复制已有容器的内容,将lt2的内容复制到lt3中。此外,还可以利用迭代器或数组区间来初始化list// 打印各个list的内容return 0;原创 2025-04-06 20:31:19 · 1452 阅读 · 29 评论 -
万字C++STL——vector模拟实现
定义了一个名为iterator的类型别名,它实际上是指向T类型的指针。这意味着iterator可以像指针一样操作,用于遍历和修改vector中的元素。:定义了一个名为的类型别名,它是指向const T类型的指针。使用只能访问vector中的元素,不能修改它们。原创 2025-03-25 22:03:14 · 1950 阅读 · 39 评论 -
深入解析 C++ Vector:全面掌握 STL 核心容器的原理与高效实践
Vector 采用指数增长策略(通常为 1.5 倍或 2 倍),以平衡频繁扩容带来的性能损耗。这种策略保证了均摊时间复杂度为 O (1) 的尾插操作。Vector 是 C++ 标准库中最常用的动态数组容器,其底层基于连续内存存储元素,兼具数组的高效访问与动态扩容的灵活性。在频繁插入元素时,Vector 性能下降明显。在循环中删除元素导致程序崩溃。原创 2025-03-19 22:10:16 · 754 阅读 · 10 评论 -
VSCode C/C++ 环境搭建指南
Visual Studio Code(简称 VSCode)是一款轻量级且功能强大的跨平台代码编辑器,凭借丰富的插件生态和高度的可定制性,深受开发者喜爱。对于 C/C++ 开发者而言,在 VSCode 中搭建开发环境,能够获得灵活且高效的编程体验。接下来,将为你详细介绍在不同操作系统下,如何在 VSCode 中搭建 C/C++ 开发环境。原创 2025-03-18 17:52:58 · 2464 阅读 · 0 评论 -
string 常见题目详解——仅仅反转字母 找字符串第一次出现的字符 字符串最后单词长度 验证回文串 字符串相加
若指针指向的不是字母,则将该指针向中间移动,直到找到字母为止。若指针指向的不是字母,则将该指针向中间移动,直到找到字母为止。函数实现了两个以字符串形式表示的非负整数相加的功能,最终返回相加结果的字符串形式。该函数借助数组来统计字符串中每个字母的出现次数,接着再次遍历字符串,找出第一个出现次数为 1 的字符的索引。给定一个字符串,返回“反转后的”字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。如果遍历完整个字符串都没有找到只出现一次的字符,说明不存在这样的字符,返回 -1。原创 2025-03-15 17:05:07 · 789 阅读 · 0 评论 -
C++ STL 详解 ——vector 的深度解析与实践指南
方式示例代码说明空容器初始容量为 0指定大小与初始值10 个元素,值为 2拷贝构造复制 v2 的内容迭代器范围构造复制区间 [begin, end) 的元素其他容器转换将 string 转换为 vector。原创 2025-03-14 21:15:27 · 614 阅读 · 1 评论 -
最强c++中string接口的深度理解(三万+)内附思维导图
手动控制字符串内存分配,避免自动扩容带来的性能损耗。原创 2025-03-12 20:45:55 · 1375 阅读 · 15 评论 -
Dev C++ 安装常见问题解决全攻略:从入门到精通的实用指南
Dev C++ 作为一款经典的 C/C++ 集成开发环境,以轻量、便捷的特点,成为众多开发者学习编程的首选工具。然而,在安装过程中,用户常常会遭遇各类 “拦路虎”,导致安装失败或使用异常。本文将深度剖析 Dev C++ 安装环节的常见问题,提供详尽的解决策略,附上官方资源与实用工具链接,助力开发者顺畅开启编程之旅。Dev C++ 官方下载。Dev C++ 的安装问题虽多样,但只要掌握系统要求、依赖组件、权限设置、代码检查等关键环节,便能逐一攻克。原创 2025-03-11 20:47:00 · 1237 阅读 · 0 评论 -
深入理解隐式类型转换:从原理到应用
这段代码定义了两个类A和B,其中类A有两个构造函数,分别接收一个int类型参数和两个int类型参数;类B有一个以const A&为参数的构造函数。在main函数中,通过不同的方式展示了隐式类型转换的使用。上述代码中通过不同的方式展示了隐式类型转换的应用,包括将内置类型转换为类类型对象,以及类类型对象之间的转换。需要注意的是,如果在构造函数前加上explicit关键字,这些隐式类型转换将被禁止,只能进行显式的对象构造。原创 2025-03-10 18:40:31 · 1023 阅读 · 5 评论 -
程序员必收藏!史上最全IDE效率工具清单(附下载链接)
文件→首选项→用户代码片段。原创 2025-03-08 19:42:30 · 1152 阅读 · 1 评论 -
史上最强 C++ 游戏开发全解析
OpenGL(Open Graphics Library)是一个跨平台的图形库,用于渲染 2D 和 3D 图形。它提供了一系列函数,可让开发者直接控制图形硬件,实现高性能的图形渲染。在 C++ 中使用 OpenGL 进行 3D 游戏开发,需要包含 OpenGL 相关的头文件,并链接相应的库文件。在 Windows 系统下,通常需要包含等头文件(GLUT 是一个用于创建 OpenGL 窗口和处理输入的辅助库)。原创 2025-03-08 19:18:53 · 852 阅读 · 0 评论 -
C++ 初始化列表:成员变量的 “快速入场券”
⽆论是否显⽰写初始化列表,每个构造函数都有初始化列表;⽆论是否在初始化列表显⽰初始化,每个成员变量都要⾛初始化列表初始化;原创 2025-03-08 17:55:17 · 398 阅读 · 0 评论 -
《C++ static 成员:共享与独立的编程智慧》
前言在 C++ 的编程世界中,类是构建复杂程序结构的基石,它将数据和操作数据的函数封装在一起,实现了对现实世界对象的抽象。而静态成员作为类的特殊组成部分,更是为编程带来了独特的优势和灵活性。无论是在管理共享资源,还是在实现特定的设计模式时,静态成员都发挥着不可或缺的作用。理解静态成员变量和静态成员函数的特性与用法,不仅能让我们编写出更高效、更具结构性的代码,还能加深我们对 C++ 面向对象编程思想的理解。接下来,就让我们深入探索 C++ 中静态成员的奥秘。原创 2025-03-08 17:28:24 · 541 阅读 · 0 评论 -
《C++ 构造、拷贝构造与析构函数:对象的诞生、克隆与消逝之旅》
1、编译器自动生成的构造函数对内置类型不做处理。2、对于自定义类型,编译器会再去调用它们自己的默认构造函数。原创 2025-03-06 15:33:50 · 1114 阅读 · 0 评论 -
C++引用基础全覆,盖言简意赅(华丽转身版)
在函数调用时,若采用值传递,会把实参的值复制一份给形参,这在处理大型对象(如大型结构体、类对象)时,会带来较大的性能开销。而引用传参则是将实参的引用传递给形参,不会进行对象的拷贝,从而提高效率。此外,由于引用是对象的别名,对引用形参的修改会直接影响到实参。函数使用值传参,会创建传入字符串的一个副本,对副本的修改不会影响到原始字符串。函数接受一个数组和一个索引作为参数,返回数组中指定索引位置元素的引用。函数使用引用传参,直接对传入的字符串对象进行修改,调用该函数后,可以直接访问和修改数组元素的值。原创 2025-03-04 10:00:25 · 803 阅读 · 0 评论 -
c++中string接口的深度理解(内附思维导图)
C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列 的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户 自己管理,稍不留神可能还会越界访问。提供了对类对象的支持,且设计了对于单个字节的字符串中的字符进行操作。原创 2024-11-09 23:13:13 · 1848 阅读 · 22 评论 -
c++模版初阶(函数模板+类模板)
核心思想是编写可重用的组件(如算法或数据结构)编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。//tmplate 表示相同class 类模板名// 类内成员定义注意:typename是用来定义模板参数关键字,也可以使用class(切记:不能使用struct代替 class)3.2 好处1.用来在一个类中可以建立两种不同类型的类,不用写两遍public:_size = 0;原创 2024-10-29 19:10:59 · 726 阅读 · 0 评论 -
哈希表的实现(C++ 和 C 语言)
哈希表是一种通过哈希函数将键映射到数组索引的数据结构,能够实现高效的数据查找、插入和删除。适用于需要快速访问的场景。原创 2024-10-21 21:23:00 · 483 阅读 · 0 评论 -
C++与C语言的排序算法对比(插入,希尔,归并)
排序算法是计算机科学中的,广泛应用于数据处理和算法设计中。本文将通过插入排序、希尔排序、归并排序和选择排序这四种常见的排序算法,分别用实现,并对它们进行优劣对比,以帮助读者更好地理解这两种语言在实现算法时的差异。原创 2024-10-21 21:08:16 · 600 阅读 · 0 评论 -
C++ 中的友元(Friend)用法详解
假设有一个类 Person。原创 2024-10-19 22:55:19 · 1405 阅读 · 0 评论 -
C++类域访问方式(public,protected,private)对象访问 , 通过成员函数访问 ,通过友元函数访问
C++类的域访问方式主要由访问修饰符控制。了解这些访问方式可以帮助我们设计更安全和可维护的类。通过合理的封装,可以有效保护数据的完整性。原创 2024-10-19 21:50:59 · 373 阅读 · 0 评论 -
C++中static关键字的用法(实现日期类)
int month;int year;public:// 构造函数// 获取日期字符串// 静态方法: 获取当前日期(假设为固定日期)// 这里返回的是一个固定的日期// 静态方法: 判断是否是闰年static关键字在 C++ 中具有多种用法,主要用于控制变量的生命周期和作用域。通过合理使用 static,可以提高程序的效率和安全性。原创 2024-10-19 20:20:56 · 877 阅读 · 0 评论 -
《图解C++函数栈:从创建到销毁,一看就懂的完整指南》
函数栈帧(Function Stack Frame)是程序在调用函数时在栈上分配的一段内存,用于保存函数的局部变量、返回地址、传递的参数以及其他必要的信息。栈帧的存在使得函数可以在调用之间保存上下文,确保函数返回时可以恢复现场。想象一下栈帧就像一叠盘子,每调用一个函数就放上一个新盘子,函数结束时就取走最上面的盘子。因此,这个"栈"是后进先出的结构。2. 函数栈帧的创建过程保存返回地址:当前函数执行到一个新的函数调用时,必须知道未来如何返回,因此先把当前指令的返回地址保存到栈中。分配局部变量空间。原创 2024-10-18 23:46:08 · 1053 阅读 · 0 评论 -
C++ 中 new 和 delete 详解,以及与 C 中 malloc 和 free 的区别
是用来动态分配和释放内存的关键字,它们是面向对象的替代方式,提供了比 C 语言更优雅的内存管理工具。具,它们不仅分配和释放内存,还会调用构造函数和析构函数,适合用于面向对象编程。,它们只负责分配和释放内存,不会进行对象的初始化和清理。在内存分配失败时会抛出异常,可以捕获进行错误处理。分配的内存,并调用对象的析构函数来进行清理工作。不需要显式类型转换,因为它返回正确的类型指针。仅仅分配和释放内存,不涉及对象初始化和清理。只分配内存,不会初始化内存中的内容,,返回指向这块内存的指针。主要用于释放数组的内存。原创 2024-10-18 23:42:37 · 1122 阅读 · 0 评论 -
C/C++ 内存分布与管理:简单易懂的入门指南
C/C++ 内存管理主要分为静态和动态两种方式。静态内存分配简单但灵活性差,动态内存分配灵活但需谨慎管理。避免内存泄漏的最佳方法是始终释放不再需要的动态内存。原创 2024-10-17 22:18:23 · 994 阅读 · 0 评论 -
C++ 类的基础用法与详细说明:简单易懂的入门指南
类是C++中一种用于封装数据和功能的基本结构。你可以将类视为一种自定义的数据类型,它可以包含数据(成员变量)和操作这些数据的函数(成员函数)。首先,我们需要定义一个类。以下是一个名为Student的类的示例。public:// 成员变量// 学生姓名int age;// 学生年龄int id;// 学生ID// 成员函数:设置学生信息// 设置姓名// 设置年龄// 设置ID// 成员函数:打印学生信息类是数据和功能的封装。成员变量是类中存储数据的变量。成员函数。原创 2024-10-17 21:01:49 · 506 阅读 · 0 评论 -
static成员和GetACunt()函数的应用
静态成员也是类的成员,受public、protected、private 访问限定符的限制。• 静态成员函数中可以访问其他的静态成员,但是不能访问⾮静态的,因为没有this指针。⽤static修饰的成员函数,称之为静态成员函数,静态成员函数没有this指针。静态成员 或者 对象.静态成员 来访问静态成员变量 和静态成员函数。• ⾮静态的成员函数,可以访问任意的静态成员变量和静态成员函数。这就相当于全局的静态放到类里面变成类专属受到类限制🚫。突破类域就可以访问静态成员,可以通过。不⾛构造函数初始化列表。原创 2024-10-14 22:11:04 · 315 阅读 · 0 评论 -
C语言malloc超级详细用法和calloc 扩展
我很喜欢雷军的一段话:我们就悄悄的干,就算失败了也不丢人。与malloc都一样唯一不同的是它会初始化分配的内存为零。)用于动态分配内存。它是标准库中的一部分,包含在。可以在运行时请求所需的内存空间,而。同为未来的it人让我们在共同进步吧。在cplusplus中。原创 2024-10-14 22:07:56 · 877 阅读 · 0 评论 -
关键字nullptr
本想通过f(NULL)调⽤指针版本的f(int*)函数,但是由于NULL被定义成0,调⽤了f(int x),因此与程序的初衷相悖。我们在调用空值指针返回空🈳的时候要强转不同类型。一定要想好写的是什么在调用。f((类型*)NULL);无类型指针(void*)如果不确定就强制类型转换。有没有能直接调用的呢。原创 2024-10-09 14:34:04 · 345 阅读 · 0 评论 -
c++引用&(大话版)小白看了秒变大白哦
一,概念 二,引用的特征 •🔪 引⽤在定义时必须初始化 •🔪🔪⼀个变量可以有多个引⽤ •🔪🔪🔪 引⽤⼀旦引⽤⼀个实体,再不能引⽤其他实体 三 ,引用的使用 🥤引用传参->减少拷贝提高效率 🥤引用作返回值->改变引用对象的同时改变被引用对象 拓展 💩(辨析)#define与typedef与引用的不同 🪡引用的底层逻辑原创 2024-10-09 08:30:06 · 446 阅读 · 0 评论 -
C++构造函数(秒懂版)
是对一个对象实例化时的初始化构造函数=默认构造函数+自己写的(符合规定的显示表达式)原创 2024-09-30 18:06:57 · 466 阅读 · 0 评论 -
c++函数重载
但是分为参数类型不同,参数个数不同,参数顺序不同。原创 2024-09-30 08:00:00 · 427 阅读 · 0 评论 -
缺省参数(备胎)
例如,在栈构建空间时会动态开辟通常以二的倍速增加一定就会亏损,因此控制空间大小显得尤为重要。在初始化中确定知道要插⼊1000个数据,初始化时⼀把开好,避免扩容。当文件中声明与定义分开时,缺省参数只等在声明中给缺省值。将声明或定义函数时的参数指定一个值(该值即为缺省值)注:当实参没有指定数值就采用缺省值否则采用实参。因为:在定义中只有在编译的时候才会调用。注 :C++规定半缺省参数必须从。不能间隔跳跃给缺省值。就是全部形参给缺省值。就是部分形参给缺省值。原创 2024-09-29 13:51:46 · 361 阅读 · 0 评论 -
C++输⼊&&输出&&换行
是流插入运算符,是流提取运算符。(C语⾔还⽤这两个运算符做位运算左移/右移)等都属于C++标准库,C++标准库都放在⼀个叫(standard)的命名空间中。原创 2024-09-29 13:15:53 · 474 阅读 · 0 评论 -
C++命名空间(namespace)产生原因,特点,空间应用,好处
后加名字加{成员},可定义变量/函数/类型。1.在命名空间中定义的变量。2.定义函数。3.定义结构体类型。如2.1中的a在不同的域中可以定义同名且不冲突。嵌套定义图1;嵌套后要区别调用图二注:当库很大或项目大还可以套中套来解决命名冲突2.5项⽬⼯程中多⽂件项⽬⼯程中多⽂件中定义的同名namespace会认为是⼀个namespace,不会冲突。多⽂件中可以定义同名namespace,他们会默认合并到⼀起,就像同⼀个namespace⼀样定个文件一个命名空间都会封在一起。原创 2024-09-28 08:30:00 · 382 阅读 · 0 评论