![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++初阶
文章平均质量分 93
C++初阶相关内容
有趣的中国人
2024加油
展开
-
STL —— priority_queue
是一个模板类,定义在头文件中,它基于堆(heap)数据结构来实现优先队列的功能。默认情况下,使用作为其底层容器,并且使用比较器(默认是std::less)来决定元素的优先级顺序。在很多情况下,我们需要对一个自定义类型按照某种形式进行排序,例如,对于一种商品,可能对他的评价、价格、销量等情况进行排序,这个时候我们就可以运用仿函数了。// 名字// 价格// 评价{}int main()原创 2024-04-16 12:45:04 · 1015 阅读 · 6 评论 -
STL —— stack、queue
deque(双端队列):是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与list比较,空间利用率比较高。原创 2024-04-15 23:14:30 · 903 阅读 · 5 评论 -
STL —— list
列表(list)是C++标准模板库(STL)中的一个容器,它是一个双向链表数据结构,用于存储元素。与vector不同,列表中的元素在内存中不是连续存储的,而是通过指针相互连接形成链表。这种设计使得列表对于插入和删除操作非常高效,但是在查找特定元素时相对较慢,因为需要按序遍历整个链表。原创 2024-04-06 16:36:44 · 923 阅读 · 15 评论 -
STL—— vector(2)
本篇文章主要讲解vector模拟实现的相关内容。原创 2024-04-01 16:23:04 · 829 阅读 · 16 评论 -
STL —— vector(1)
vector是 C++ 标准库中的一个容器类模板,它提供了动态数组的功能,可以方便地管理和操作元素的集合。vector定义在 头文件中,使用时需要包含该头文件。vector类定义在 std 命名空间中,因此需要使用 std::vector 或者在代码开头添加 using namespace std;来简化使用。vector是一个序列式容器,它以动态数组的形式存储元素,并提供了在数组末尾快速插入和删除元素的功能。vector。原创 2024-03-29 17:43:07 · 1149 阅读 · 19 评论 -
STL —— string(终)
本片文章还是主要讲解 string 类中剩余几个函数的模拟实现:1. swap() 函数的模拟实现在C++库中就有swap()函数的实现,但是为什么要在string类中也要实现一个swap()函数呢?我们可以先看一下库中的实现逻辑:template <class T> void swap ( T& a, T& b ){ T c(a); a=b; b=c;}这里可以看到如果对内置类型,它会调用一次拷贝构造、两次赋值重载、一次析构,而且都是深拷贝,这样原创 2024-03-27 23:17:44 · 348 阅读 · 5 评论 -
STL —— string(3)
大部分的用法我在上一篇已经讲解过了,这边文章主要讲解还有的部分用法以及string类的模拟实现。原创 2024-03-26 23:52:33 · 696 阅读 · 17 评论 -
STL —— string(2)
本篇文章主要讲解string的用法。原创 2024-03-23 13:27:40 · 1480 阅读 · 16 评论 -
STL —— string(1)
int _top;如果要声明定义分离的话,要加入模板参数列表, _top(0){}STL(Standard Template Library)是C++标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法模板。STL的设计目标是提供可复用、高效和类型安全的组件,以便开发人员可以方便地处理各种常见的数据结构和算法问题。原创 2024-03-21 23:42:25 · 1021 阅读 · 9 评论 -
C++ —— 内存管理
例如创建链表的操作:public:int _val;printf("请依次输入%d个节点的值:>", n);i < n;原创 2024-03-20 23:57:49 · 914 阅读 · 11 评论 -
C++ —— 类和对象(终)
这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需要重载,比如想让别人获取到指定的内容,可以返回假地址,例如。,内部类可以通过外部类的对象参数来访问外部类中的所有成员。但是外部类不是内部类的友元。总的来说,如果是读功能的函数,可以加上const,而写功能的函数不加const。构造函数 + 拷贝构造 直接优化成了 构造函数。每个成员变量在初始化列表中只能出现一次;静态成员变量一定要在类外进行初始化。友元 是一种突破封装的方式。内部类就是外部类的友元类。原创 2024-03-20 13:47:54 · 862 阅读 · 8 评论 -
C++ —— 日期计算器
【代码】C++ —— 日期计算器。原创 2024-03-19 21:50:35 · 485 阅读 · 3 评论 -
C++——类和对象(3)
此篇文章讲解六个默认成员函数中的拷贝构造和赋值重载。原创 2024-03-17 19:41:59 · 812 阅读 · 8 评论 -
C++——类和对象(2)
构造函数函数名与类名相同;无返回值;构成重载;在对象实例化的时候自动调用构造函数;如果自己没有编写构造函数那么编译器会帮你自动生成构造函数;对于编译器生成的构造函数中,内置类型不会进行初始化,自定义类型会帮你自动调用他的构造函数;如果自己编写了构造函数,那么编译器会根据函数名修饰调用属于他的构造函数;无参的构造函数、全缺省构造参数、编译器自己生成的构造函数统称为默认构造函数;通常情况下是需要构造函数的。函数名是在类名之前加上~;无返回值无参数;原创 2024-03-15 10:28:10 · 1045 阅读 · 11 评论 -
C++——类和对象(1)
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。int _month;int _day;int _month;int _day;d1.func();int _month;int _day;原创 2024-03-15 00:18:11 · 865 阅读 · 14 评论 -
C++入门篇(2)
在编程时,常常需要把表达式的值赋值给变量,这就要求在声明变量的时候清楚地知道表达式的类型。然而有时候要做到这点并非那么容易,因此C++11给auto赋予了新的含义。C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。以下是auto的一个用法:函数指针int main()pf1();pf2();原创 2024-03-13 21:58:56 · 746 阅读 · 0 评论 -
C++入门篇(1)
定义命名空间,需要使用到namespace// 命名空间中可以定义变量/函数/类型int val;原创 2024-03-13 00:35:16 · 1061 阅读 · 10 评论