
从零开始学c++
文章平均质量分 92
该专栏是我从零基础开始学c++的过程,我会把我平时学到的给总结下来,欢迎大家订阅
努力学习的少年
一分耕耘,一份收获
展开
-
【c++11特性】——static_cast,dynamic_cast,const_cast,reinterpret_cast解析
C++提供了四种主要的强制类型转换运算符,用于进行类型之间的显式转换,这种显示类型转换更直接明显,能够一眼看出是什么类型转换为什么类型,容易找出程序中的错误;可清楚地辨别代码中每个显式的强制转;可读性更好,能体现程序员的意图原创 2023-10-04 20:15:38 · 770 阅读 · 1 评论 -
【数据结构】——并查集 的 详细解析和实现
1. 并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。 查找(Find):查询两个元素是否在同一个集合中 合并(Union):把两个不相交的集合合并为一个集合原创 2022-09-10 20:05:41 · 3042 阅读 · 0 评论 -
哈希表——哈希表的概念,哈希表的实现(闭散列,开散列)详细解析
哈希函数设计哈希函数常用有两种方法:直接定址法:取关键字的某个线性函数为散列地址:Hash(Key)= A*Key + B 优点:简单、均匀 缺点:需要事先知道关键字的分布情况 使用场景:适合查找比较小且连续的情况如下这题:该题直接采用直接定址法,已知该题只包含小写字母,所以开一个大小为26的数组直接映射小写字母即可,然后遍历字符串,统计字符串中的小写字母出现的次数,然后再遍历一遍字符串,通过字符哈希映射关系,找到第一个只出现一次的字符。class Solution {pub原创 2022-01-14 18:33:57 · 3825 阅读 · 15 评论 -
【c++复习笔记】——右值引用(概念,使用场景),移动拷贝构造函数,赋值拷贝构造函数。
💂 个人主页:努力学习的少年 🤟 版权: 本文由【努力学习的少年】原创、在优快云首发、需要转载请联系博主 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦原创 2022-04-07 14:02:32 · 5739 阅读 · 7 评论 -
【c++复习笔记】——智能指针详细解析(智能指针的使用,原理分析)
💂 个人主页:努力学习的少年🤟 版权: 本文由【努力学习的少年】原创、在优快云首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦原创 2022-04-03 20:20:53 · 42709 阅读 · 25 评论 -
【c++复习笔记】——异常处理机制
💂 个人主页:努力学习的少年🤟 版权:本文由【努力学习的少年】原创、在优快云首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦原创 2022-03-29 21:21:20 · 3389 阅读 · 2 评论 -
【特殊类的设计笔试题】———单例模式的类(懒汉模式,饿汉模式)
💂 个人主页:努力学习的少年🤟 版权:本文由【努力学习的少年】原创、在优快云首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦原创 2022-03-28 20:28:42 · 1202 阅读 · 1 评论 -
【c++复习笔记】——多态详细解析,多态的原理,多态的笔试题
💂 个人主页:努力学习的少年🤟 版权:本文由【努力学习的少年】原创、在优快云首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦原创 2022-03-27 10:38:43 · 5919 阅读 · 11 评论 -
【c++之容器】——list的源码模拟实现
目录1.list的概述2.list的节点3.list的迭代器4.list的数据结构a.插入节点b.删除节点1.list的概述list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。它的优点是每次插入或删除一个元素,就配置或释放一个元素的空间。所以对于空间的管理比较精准,一点也不浪费。而且对于任何的元素插入或删除,它的时间复杂度为O(1),非常高效。2.list的节点list本身与list.原创 2021-08-15 20:04:37 · 843 阅读 · 6 评论 -
【从零开始学c++之STL】——vector的介绍和使用
vector的介绍和使用一.vector的文档介绍二.vector的使用1.vector对象的创建2.迭代器 iterator的使用3.vector空间4.vector的增删查改一.vector的文档介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。原创 2021-08-04 18:28:23 · 1122 阅读 · 3 评论 -
【从零开始学c++】———模拟实现string类(常用接口的实现)
string1.前言2.string类常用接口实现3.总结1.前言之前学到了string类常用接口的后,我很好奇string类在底层是怎样实现的,在由之前学习到c++有关的之后,所以我打算模拟实现一下string类常用的接口,以便加深我对之前的知识的理解,和更好的去使用string类,比如在哪些场景使用哪些接口较为合适。接下来我会用c++来模拟实现各个接口。2.string类常用接口实现#define _CRT_SECURE_NO_WARNINGS 1#include<iostream&g.原创 2021-07-25 19:39:58 · 925 阅读 · 17 评论 -
【从零开始学c++】——C++动态内存管理
C++动态内存管理1.C/C++内存分布2.c++中的动态内存管理3.operator new和operator delete4.什么是内存泄露5.malloc/free和new/delete的区别1.C/C++内存分布接下来我们来看一下例子:int globalVar = 1;static int staticGlobalVar = 1;void Test(){ static int staticVar = 1; int localVar = 1; int num1[10] = .原创 2021-07-22 12:40:19 · 869 阅读 · 9 评论 -
【从零开始学c++】——类与对象(三)
类与对象(三)一.再谈构造函数1.构造函数体的赋值2.初始化列表的定义二.explicit关键字详解三.static成员四.友元1.友元函数2.友元类5.内部类五.C++的成员初始化新玩法一.再谈构造函数1.构造函数体的赋值在构造函数体内进行赋值称为函数体内初始化。然而上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称作为类对象成员的初始化,构造函数体中的语句只能将其称作为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值。2.初始化列表的定义初始化列.原创 2021-07-18 17:30:37 · 506 阅读 · 18 评论 -
【从零开始学c++】————模板初阶
模板初阶模板函数1.模板函数的概念2.模板函数的定义格式3.函数模板的原理4.函数模板的实例化5.模板的匹配原则类模板1.类模板的定义格式2.类模板的实例化模板函数如何实现一个通用的的交换函数呢?我们可以通过函数重载把各个类型的交换函数给写出来,如下:void Swap(int& left, int& right)//int类型的交换函数 { int temp = left; left = right; right = temp; } void Swap(doubl.原创 2021-07-16 08:34:26 · 449 阅读 · 6 评论 -
【从零开始学c++】——string
学好STL一.STL简介(了解)1.什么是STL2.STL的六大组件3.STL的缺陷2.string1.string的简单了解如何对stl的查阅2. string常用接口说明1.string类 对象常见的构造2.string类对象的容量操作3. string类对象的访问及遍历操作4. string类对象的修改操作一.STL简介(了解)1.什么是STLSTL(standard template libaray-标准模板库): 是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据.原创 2021-07-12 18:57:51 · 405 阅读 · 8 评论 -
【从零开始学c++】——类与对象(二)
类与对象1.构造函数1.1构造函数的定义1.2构造函数的特性2.析构函数2.1概念2.2.特性3.拷贝构造函数3.1 概念3.2 拷贝构造函数的特性4.赋值运算符的重载1.构造函数1.1构造函数的定义构造函数是特殊的成员函数,,名字与类名相同,创建类类型对象时由编译器自动调用,需要注意的是,构造函数的虽然名称叫构造,但是需要注意的是构造函数的主要任务并不是开空间创建对象,而是初始化对象。1.2构造函数的特性其主要特征如下:1.名字与类名相同2.无返回值3.对象实例化时编译器会自动调用构原创 2021-06-09 09:30:41 · 392 阅读 · 8 评论 -
【从零开始学c++】——类和对象(一)
类和对象面向过程和面向对象的初步认识1.类的引入1.1类的定义1.2 类的两种定义方式2. 类的访问限定符及封装2.1 访问限定符2.2 class定义的类与struct定义的类的区别2.3 封装3.类的作用域4.类的实例化5.类对象模型5.1 如何计算类对象的大小6.this指针6.1 this指针的形成6.2 this指针的特性完面向过程和面向对象的初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不.原创 2021-06-02 01:19:40 · 696 阅读 · 14 评论