C++
文章平均质量分 97
c++知识分享
ephemerals__
大二在读学生,平时会分享一些关于编程的技术和知识,希望可以和大家一起学习讨论,共同进步。专注领域:C/C++
展开
-
【c++】模板详解(2)
今天, 我们学习了非类型模板参数、模板特化以及模板分离编译的相关知识,进一步加深了对模板的理解。原创 2024-11-25 22:37:05 · 793 阅读 · 20 评论 -
【c++丨STL】priority_queue(优先级队列)的使用与模拟实现
优先级队列是一种容器适配器,根据某种严格的弱排序标准,特别设计为它的第一个元素总是它所包含的元素中的最大元素。虽然它的名字叫“优先级队列”,但实际上它跟队列没有什么关系,它的底层结构是堆。既然它的底层结构是一个堆,那么它也就符合堆的所有性质,例如不能遍历、只能从堆顶出入数据等。原创 2024-11-21 22:25:15 · 1029 阅读 · 17 评论 -
【c++丨STL】stack和queue的使用及模拟实现
与vector、list这些容器不同,stack和queue被称作容器适配器。所谓容器适配器,就是指在一种已有的容器基础上,为其添加了一些新的特性或者功能,目的是使一事物的行为类似于另一类事物。比如说栈这一数据结构,它的本质其实就是对顺序表或者链表的功能进行了一些限制,例如无法遍历、只能在一端进出数据等,但其底层仍然是顺序结构或是链式结构。STL在设计stack和queue时,并没有从零开始构建它们的底层结构,而是采用了这种设计思想,对现有容器进行了封装,从而实现了它们。原创 2024-11-20 19:56:41 · 1210 阅读 · 23 评论 -
【c++丨STL】list模拟实现(附源码)
本篇文章,我们在掌握list使用方法及其底层原理的基础上,模拟实现出了list容器。由于底层数据内存的非连续性,它的迭代器实现与vector、string有较大差异。原创 2024-11-19 22:00:42 · 970 阅读 · 21 评论 -
【c++丨STL】list的使用
之前我们已经学习了string、vector两个容器的使用方法及模拟实现,今天跟大家介绍list的使用方法。在STL中,尽管容器各异,但同名接口的功能往往是相似的。因此,在我们掌握了少数几个容器的使用方法后,对于未曾接触过的其他容器,只要了解其底层数据结构,就基本能够上手使用它们。list是STL中的一种容器,用于表示链表结构,底层实现是一个双向带头循环链表。原创 2024-11-13 21:36:24 · 1450 阅读 · 29 评论 -
【c++丨STL】vector模拟实现
与传统的动态顺序表不同,它采用了三个迭代器来维护数组,提高了程序灵活性。也正因如此,它的实现难度也有所增大,对于细节把控的要求也很高。原创 2024-11-09 19:16:15 · 1317 阅读 · 24 评论 -
【c++丨STL】vector的使用
vector是STL中的一种容器,它用于表示可变大小的数组,底层使用动态顺序表实现。相比传统的数组,vector附带了一系列操作接口,并且由于内存是动态分配的,所以不必担心插入元素时内存不足的问题。由于vector强大的功能和灵活性,我们在c++编程中经常使用vector来表示内存连续的序列。我们使用vector时,要引头文件,并且该容器定义在命名空间std当中。今天我们学习了STL另一个容器--vector的使用。不难发现,原创 2024-11-06 22:49:14 · 1107 阅读 · 21 评论 -
【c++丨STL】string模拟实现(附源码)
今天,我们在学会使用string类的基础上模拟实现了string类的常用功能,这对于我们学习数据结构和string类有很大帮助。之后博主会和大家一起进入下一个容器——vector的学习。原创 2024-10-24 15:38:23 · 1575 阅读 · 31 评论 -
【c++丨STL】string类的使用
今天,我们正式进入了STL的大门,学习了第一个容器——string。string虽然接口较多,但是它的实用性很高,为我们处理字符串提供了很多便利。由于其中一些接口并不是很常用,博主就没有过多赘述,大家可以在cplusplus官网进一步了解它们。之后博主会和大家一起,在熟练运用的基础上,深入其底层,并尝试模拟实现string类。原创 2024-10-20 01:26:38 · 1191 阅读 · 35 评论 -
【c++】STL简介
STL(Standard Template Library,标准模板库),是c++标准库的一个重要组成部分,它提供了一系列通用的类模板和函数,是一个包罗数据结构和算法的软件框架。STL的出现弥补了c++开发效率的不足,大大提高了程序的可复用性。原创 2024-09-21 17:36:18 · 1558 阅读 · 27 评论 -
【c++】模板详解(1)
今天我们学习了c++的模板,它分为函数模板和类模板,是泛型编程的基础,为我们提供了很多方便。原创 2024-09-20 22:54:45 · 966 阅读 · 17 评论 -
【c++】动态内存管理
1. new:首先调用operator new函数申请内存空间,然后调用构造函数,完成初始化2. delete:首先调用析构函数,对开辟的内存进行资源清理,然后调用operator delete函数释放内存3. new[]:首先调用 operator new[ ] 函数申请多个对象的内存空间(该函数中调用了operator new),然后调用N次构造函数,完成初始化。原创 2024-09-20 20:15:31 · 1302 阅读 · 25 评论 -
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
今天我们学习了类和对象相关的新概念和知识,例如:取地址重载、static修饰成员、友元、内部类等,它们对于我们深入学习并理解c++的后续内容,以及实现对象的相关功能有很大帮助。原创 2024-09-15 22:44:58 · 1414 阅读 · 24 评论 -
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
所谓默认成员函数,就是在类当中我们没有显示实现,但是编译器自动生成的成员函数称之为默认成员函数。在c++11之前,默认成员函数一共有六个:接下来我们会根据它们的特点,使用规则以及自实现方面逐一讲解。今天我们学习了四个类的默认成员函数构造函数、析构函数、拷贝构造函数和赋值重载,它们能够确保资源的正确管理和对象状态的正确维护。之后博主会和大家分享其余的两个默认成员函数,并实现日期类。原创 2024-09-03 09:04:44 · 1604 阅读 · 34 评论 -
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
类的本质是一种自定义类型,是定义对象模板的蓝图或者结构。它制定了对象可以包含的数据以及该对象可以执行的操作。在某种程度上,c++中的类可以认为是c语言结构体的升级版,不仅可以在其中定义成员变量,也可以定义成员函数,用于对成员变量进行访问或操作。原创 2024-08-28 22:30:59 · 1130 阅读 · 25 评论 -
【c++】深入理解别名机制--引用
引用,作为c++中的一种特殊别名机制,当我们定义引用时,并不是创建了一个新变量,而是给原有的变量起了一个别名。(数据类型)& 引用名 = 引用对象;int& b = a;//定义引用,给a取了一个别名a++;b++;return 0;运行结果:可以看到,无论是对a自增,还是对b自增,它们表示的值都会发生改变。结果显示它们的地址是相同的。这表明引用只是给变量起了一个别名,表示的还是同一块内存空间。原创 2024-08-18 22:45:55 · 1447 阅读 · 19 评论 -
【c++】基础知识——快速入门c++
c++是在c语言的基础上,增加了面向对象编程、引用、函数重载、模板库STL等新特性,使得c++成为一门功能强大、灵活多变的语言。c++在语法上兼容大部分c语言,因而学习了c语言之后,会对c++学习有一定的帮助。相比java,c++语法的学习难度较高,但是它难学易用,也有利于我们理解底层,是一门十分值得深入学习的语言。接下来我们会重点介绍一些c++的前置基础知识,便于我们快速入门c++语法。int x = 5;char n;1.定义命名空间使用的关键字是。原创 2024-08-07 15:53:14 · 1436 阅读 · 22 评论
分享