
初阶C++
文章平均质量分 92
深入了解C++初阶部分具体知识,讲解其用法和底层逻辑。
诚丞成
为了更大的扬善。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
有序之美:C++ Set的哲学与诗意
在C++的繁华语言世界中,有一个数据结构宛如一位端庄优雅的隐士,它不事张扬,却蕴藏着深邃的智慧与独特的魅力。这便是标准模板库(STL)中的set容器。若将C++比作一幅绚丽的画卷,set则如点缀画卷的灵动笔触,简单而不失精妙。原创 2024-12-26 16:27:14 · 1999 阅读 · 23 评论 -
数据之林的守护者:二叉搜索树的诗意旅程
在数据结构的世界里,若说哈希表是快如闪电的追风者,图是联结万物的纽带,那么二叉搜索树(Binary SearchTree,BST)便是这片数据森林中最古老的守护者。它以平衡与优雅为本,根深叶茂,庇护着无数程序的逻辑之根。原创 2024-12-26 16:26:19 · 1084 阅读 · 23 评论 -
多态的千面之歌:不息的灵魂吟唱
在实际应用中,多态展现了其超凡的适应性。它让程序能够应对复杂的需求变化,既保持灵活性,又增强可维护性。这一章我们将深入分析多态的原理,包括虚函数表的构造及其在单继承和多继承中的表现,以及如何通过动态绑定实现灵活的函数调用。原创 2024-12-24 09:46:54 · 1214 阅读 · 31 评论 -
多态的千面之歌:C++编程的灵性叙事
在编程的浩瀚星空中,C++如同一位魔法师,以其深邃的哲学和强大的技术能力书写着程序的传奇。而在这部辉煌的叙事中,多态(Polymorphism)便是那令人沉醉的“千面之歌”。它让代码在规则与自由之间翩翩起舞,在统一的框架下展现万千风采,仿佛为冰冷的代码注入了生命的灵性。本文将揭开C++多态的神秘面纱,从基本概念到实现方式,再到其在实际应用中的非凡表现,带您走入这片富有文学诗意与工程逻辑完美交融的奇妙领域。多态,即多种形态,在面向对象编程中意味着可以通过一个基类指针或引用调用不同派生类的成员函数。原创 2024-12-24 09:45:59 · 1198 阅读 · 84 评论 -
计算世界之安生:C++继承的文水和智慧(下)
C++作为一门高性能和高应用性的面向对象计算语言,其核心特性之一是继承。继承充分体现了重用和扩展类的功能,通过完善结构设计,可以构建高效和总结性的程序。在本篇文章中,我们将进一步探讨更复杂的继承机制,特别是虚拟继承,以及如何通过虚拟继承来解决多重继承中的难题。原创 2024-12-23 11:48:40 · 1353 阅读 · 57 评论 -
计算世界之安生:C++继承的文水和智慧(上)
在C++中,继承(Inheritance) 是面向对象程序设计中的一种机制,它允许程序员在已有类(即基类或父类)的基础上,扩展或修改功能,从而形成新的类。原创 2024-12-22 10:53:16 · 1186 阅读 · 64 评论 -
抽象之诗:C++模板的灵魂与边界
在计算机科学的浩瀚长河中,C++模板如同一颗璀璨的星辰,以其独特的泛型编程方式为程序设计注入了灵魂。它是抽象的艺术,是类型的舞蹈,是效率与灵活性的交响乐。模板不仅是一种技术工具,更是一种哲学思考,它模糊了代码与数学、静态与动态、具体与抽象之间的界限。本文将带领读者踏上一场关于C++模板的奇妙旅程。从基础语法到元编程的深水区,从历史背景到现代实践,这篇文章试图揭示模板背后那既精妙又深刻的逻辑与设计思想。让我们一起追溯这首「抽象之诗」,一窥C++模板的灵魂与边界。原创 2024-12-21 22:03:29 · 1597 阅读 · 48 评论 -
初始vector——数组的高级产物
本文主要介绍了vector的含义结构,相关接口的使用方法,以及迭代器的概念与使用,内附详细例子与具体文档参考链接。原创 2024-10-09 23:31:18 · 1290 阅读 · 28 评论 -
vector的深入剖析与底层逻辑
本文承接上篇vector基础部分的讲解,继续对其底层逻辑和相关属性进行深入剖析。每一特性都给出了详解解释与示例。原创 2024-10-16 23:30:15 · 1277 阅读 · 24 评论 -
深度剖析C++STL:手持list利剑,破除编程重重难题(下)
在list的实现中,底层是通过双向链表结构来存储数据。双向链表中的每个节点不仅包含数据,还包含指向前一个节点和后一个节点的两个指针。以下是节点结构的定义:迭代器的作用类似于一个指针,它指向链表中的某个节点,允许我们通过类似指针的方式来访问和操作链表节点。与普通指针不同,迭代器提供了更高级的功能,并且能够保持接口的一致性,因此它成为了 STL 容器中访问元素的核心工具。为了实现最基本的链表迭代器,首先我们需要定义链表节点的结构。该结构已经在上文定义了。接下来,我们将实现,它内部保存一个指向。原创 2024-11-19 22:14:28 · 2216 阅读 · 46 评论 -
深度剖析C++STL:手持list利剑,破除编程重重难题(上)
C++ 提供了丰富的标准模板库 (STL),其中包括顺序容器(如 vector、deque)和关联容器(如 map、set)。list 是一种链表结构的顺序容器,它的底层实现是双向链表。这使得 list 在插入和删除操作上比 vector 更加高效,但由于不支持随机访问,因此访问特定位置的元素时效率较低。// 降序比较// 使用自定义比较函数进行降序排序// 输出: 9 6 5 5 2 1return 0;// 自定义规则:移除相邻的偶数/奇数// 使用自定义规则去重。原创 2024-11-18 22:38:08 · 1989 阅读 · 56 评论 -
C++类与对象(下篇)
示例:说明:1.友元函数可访问类的私有和保护成员,但不是类的成员函数2.友元函数不能用const修饰3.友元函数可以在类定义的任何地方声明,不受类访问限定符限制4.一个函数可以是多个类的友元函数5.友元函数的调用与普通函数的调用原理相同。原创 2024-08-13 12:06:41 · 975 阅读 · 2 评论 -
STL简介
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。原创 2024-08-13 17:37:50 · 312 阅读 · 6 评论 -
C++ 类与对象(中篇)
类与对象六大成员函数介绍。原创 2024-08-12 18:16:35 · 931 阅读 · 5 评论 -
模板初阶简介
如何实现一个通用的交换函数呢?使用函数重载虽然可以实现,但是有以下几个不好的地方:1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数2. 代码的可维护性比较低,一个出错可能所有的重载均出错那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢?泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。示例如下:注意:typ原创 2024-08-13 17:24:34 · 463 阅读 · 4 评论 -
C/C++内存管理
代码示例如下:注意:在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与 free不会。malloc/free和new/delete的共同点是:都是从堆上申请空间,并且需要用户手动释放。不同的地方是:1. malloc和free是函数,new和delete是操作符2. malloc申请的空间不会初始化,new可以初始化3. malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可, 如果是多个对象,[]中指定对象个数即可。原创 2024-08-13 16:30:04 · 671 阅读 · 6 评论 -
string类详解
string类相关函数及操作详解。原创 2024-08-19 11:08:53 · 4345 阅读 · 16 评论 -
初识C++
C++入门重点知识简要概括。原创 2024-08-07 15:44:57 · 1151 阅读 · 6 评论 -
C++ 类与对象(上篇)
class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类在定义时又有两种方式。C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。【访问限定符说明】1. public修饰的成员在类外可以直接被访问。原创 2024-08-07 18:04:33 · 955 阅读 · 9 评论