- 博客(71)
- 收藏
- 关注
原创 【MySQL】表的操作(增删查改)
本篇博客主要内容:MySQL数据库中表的增删查改。MySQL数据库中的表是一种二维结构,由行和列组成,用于存储和组织数据。每一列代表一个字段,每一行代表一条记录,通过定义字段的数据类型和约束条件来确保数据的完整性和准确性。表是数据库的基本存储单元,支持数据的插入、查询、更新和删除操作,并通过索引和存储引擎来优化查询性能和数据可靠性。本篇博客的重点在如何操作MySQL数据库中的表。本篇博客主要介绍了如何操作MySQL数据库中的表,包括表的创建,查看,删除,更改表名,表属性列的增删查改。MySQL。
2024-11-24 12:00:38
737
2
原创 【MySQL】库的操作(增删查改 | 备份 | 恢复)
本篇博客简单介绍了如何操作MySQL数据库。正常情况下,不要随意的删除数据库。校验规则对数据库处理数据会造成一些影响。以及如何对数据库进行备份和恢复。
2024-11-23 15:28:30
973
原创 【MySQL】MySQL在Centos环境安装
MySQL是一款开源的关系型数据库管理系统,以其高性能、稳定性和灵活性著称,广泛应用于各种规模的企业级应用中,用于存储、管理和检索数据。本篇博客将给大家介绍如何再Centos 7环境下安装MySQL。通过指令检测是否有mariadb或者mysqld服务是否存在:图中显示存在mysqld服务,而不存在mariadb服务。对于存在的我们使用指令停止相关服务:如上图,成功停止了mysqld服务。卸载显示出来的mariadb/mysql安装包备份/etc/my.cnf,备份/var/lib/mysql
2024-11-16 12:03:57
631
1
原创 【C++11】智能指针
本篇博客主要内容:C++11中的智能指针的使用;并对几种常见智能指针进行简单自实现。上篇博客主要讲到了异常的使用,也稍微提到一些规定,如:不要再new后delete前抛出异常。稍后将会为大家详解其中缘由,并给出解决方式——智能指针。
2024-09-15 17:34:06
1526
10
原创 【C++11】异常
C++11处理错误的方式——异常。在C++中,异常是一种处理运行时错误的机制,它允许程序在发生错误时,能够优雅地跳转到另一个代码段(异常处理代码),而不是像传统的错误处理方式那样(如返回错误码),可能需要调用者一层层检查并处理错误。异常提供了一种结构化的方式来处理程序中可能发生的异常情况,使得代码更加清晰、易于维护。实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,如果一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。
2024-08-23 22:15:23
1702
26
原创 【C++11】常用新语法②(类的新功能 || 可变参数模板 || lambda表达式 || 包装器)
本篇博客主要内容:C++11中较为常用的新语法。咱们继续接着上篇C++11来讲,本篇博客会涉及到C++11中新的两个默认成员函数,lambda表达式以及包装器相关的内容。本篇博客首先补充了一下C++11新增的两个默认成员函数,移动构造和移动赋值重载,可变参数模板以及STL容器中的emplace接口。然后讲解了lambda语法,以及包装器function和bind。lambda语法使程序员从每次调用相关算法都需要实现一个类的冗余工作中摆脱;包装器包装可调用对象的特性也使C++程序变得更加灵活。C++
2024-08-22 22:23:03
859
36
原创 【Linux学习】Linux开发工具——vim
Linux编辑器——vim的介绍和使用。vim 是一款在 Linux、Unix 以及类 Unix 系统(比如 macOS)上广泛使用的文本编辑器。它最初由 Bram Moolenaar 在 1991 年发布,作为 vi 编辑器的改进版。vi 编辑器是 Unix 系统上最早的屏幕编辑器之一,由 Bill Joy 在 1976 年为 BSD Unix 系统编写。vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
2024-08-20 21:26:49
2095
13
原创 【Linux学习】权限
本篇博客主要内容:Linux权限的概念以及权限管理。Linux系统的权限是Linux安全模型的核心组成部分,它决定了系统上的用户、用户组以及进程可以对文件、目录和其他系统资源执行哪些操作。理解Linux的权限对于确保系统的安全性、稳定性和数据保护至关重要。本编博客主要讲解了,Linux权限的概念以及权限的管理方式。通过精细控制对文件和目录的访问,Linux权限机制有助于防止未授权的数据访问和操作,从而提高系统的安全性。熟练掌握权限的规则和使用,有助于维护系统的稳定性和可靠性。Linux学习。
2024-08-17 21:39:00
665
6
原创 【C++11】常用新语法①(统一的列表初始化 || initializer_list || 声明 || STL新增容器 || 右值引用和移动语义 || 万能引用和完美转发)
本篇博客主要内容:C++11的简介,以及其中较为常用的新语法。之前部分内容都是基于C++98来进行展开的,在最开始几节语法的基础上自实现STL库中的容器,完善容器的过程中逐渐培养起C++的编程思维。C++11的一些新语法可能会对传统C++98的选手们产生一定的冲击,毕竟新语法就是一种新玩法,建议提前做好心理准备,开始本次的内容。在2003年C++标准委员会曾经提交了一份计数勘误表(简称TC1),使得C++03这个名字取代C++98称为C++11之前的最新C++标准名称。
2024-08-16 22:09:33
2064
57
原创 【数据结构进阶】哈希的应用
哈希在数据存储和处理中的应用。位图,布隆过滤器,以及海量数据处理。话不多说,开始我们本次的内容。哈希的三个应用,分别是位图,布隆过滤器,以及海量数据处理。位图能以少量的空间快速存放数据的存在情况;布隆过滤器中需要注意k,m和n之间合适的比例关系;最后海量数据处理使用哈希切分的方式,将大文件分割成小文件,从而使计算机能够对其进行处理。C++数据结构。
2024-08-12 21:09:39
972
9
原创 【数据结构进阶】哈希
哈希的介绍,以及哈希表底层代码逻辑和实现。unordered系列的关联式容器之所以效率比较高,是因为底层使用了哈希结构。关于unordered容器的使用大家可以去参考文档,除了其容器内的元素无序之外,功能和接口与mapset及其相似(虽然底层大不相同)。应用链地址法处理溢出,需要增设链接指针,似乎增加了存储开销。事实上:由于开放定址法必须保持大量的空闲空间以确保搜索效率,如二次探查法要求装载因子a
2024-08-07 18:20:42
904
81
原创 【数据结构进阶】手撕红黑树
红黑树的介绍,以及底层代码逻辑和实现。刚刚接触编程的时候就听说有的大厂HR会让手撕红黑树。心中一直对这个数据结构保持着敬畏和向往,今天在将其撕出来后,用本篇博客加以记录,望周知。红黑树的结点包含四个成员变量,模板类型T:可以存储K或者pair类型,便于后期封装;三个指针:分别为指向左孩子结点的指针,指向右孩子结点的指针,指向父结点的指针;最后变量_col:枚举类型,可以存RED和BLACK。
2024-08-01 21:08:23
1318
133
原创 【数据结构进阶】AVL树
AVL树的介绍,以及其底层代码逻辑和实现。其底层都是按照二叉搜索树来实现的,但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时间复杂度会退化成O(N),因此map、set等关联式容器的底层结构是对二叉树进行了平衡处理,即采用平衡树来实现。而我们今天所要说的AVL树就是平衡树的一种。AVL树是一棵绝对平衡的二叉搜索树,其要求每个节点的左右子树高度差的绝对值都不超过1,这样可以保证查询时高效的时间复杂度,即log_2 (N)。
2024-07-28 22:19:09
1291
39
原创 【C++】map的使用
本篇博客主要内容:STL库中map的介绍以及其用法的讲解。set和map的底层结构是红黑树,而红黑树又是一种特殊的二叉搜索树(红黑树可以保持树的平衡)。而我们今天来学习什么是map,以及如何使用map这个容器。【数据结构进阶】二叉搜索树本篇博客我们介绍了STL库中的map和multimap,以及map成员函数接口的使用。multimap支持数据冗余,可以存在多个相同的key对应不同的value;而map中,只有唯一的key。STLC++
2024-07-26 20:51:30
655
8
原创 【C++】set的使用
本篇博客主要内容:STL库中set的介绍以及其用法的讲解。set和map的底层结构是红黑树,而红黑树又是一种特殊的二叉搜索树(红黑树可以保持树的平衡)。而我们今天来学习什么是set,以及如何使用set这个容器。【数据结构进阶】二叉搜索树本篇博客我们介绍了STL库中set和multiset,以及set成员函数接口的使用。multiset支持数据冗余,而set中的值(value)是唯一的。STLC++
2024-07-24 18:34:35
3299
56
原创 【数据结构进阶】二叉搜索树
二叉搜索树的介绍及自实现。基础的二叉树在前面的C数据结构阶段已经讲过(初阶数据结构之—二叉树链式结构之前因为用C语言的话,实现更高级数据结构比较困难,所以并没有往后展开。到了现在,已经有了一定的C++功底,就可以开启我们数据结构进阶部分的内容了。对于二叉搜索树的特性了解,有助于后续更好的理解map和set的特性。本节课作为学习更高阶数据结构的基础,对后续学习来说至关重要。本篇博客主要讲了二叉搜索树及其实现,K模型和KV模型,最后分析了二叉搜索树的性能,同时介绍了一些维持树平衡的解决方案。C++数据结构。
2024-07-21 16:35:00
2813
94
原创 【Linux学习】常用基本指令
Linux下常用基本指令。Linux是一个开源的类Unix操作系统,由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。Linux是许多计算机、服务器、嵌入式系统和移动设备(如智能手机、平板电脑、路由器和智能电视)的基石。它的主要特点是其开放源代码的特性,意味着任何人都可以查看、修改和分发其源代码,这促进了全球范围内的合作和创新。Linux有多个发行版(也称为Linux发行版或distro),每个发行版都有自己的特色、软件包集和桌面环境。
2024-07-19 22:13:26
1555
43
原创 【C++】多态
本篇博客主要内容:面向对象三大特性之一——多态。封装继承和多态。今天我们将介绍最后一个——多态。构成多态的条件多态是在不同继承关系的类对象,去调用同一函数,产生不同的行。如Student继承Person。Person对象买票全价,Student买票半价。必须通过基类的指针或者引用调用虚函数(拷贝不可)。被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。虚函数及其重写即被virtual修饰的类成员函数称为虚函数。派生类中有一个跟基类完全相同的虚函数(即派生类虚函数与基类虚函数的。
2024-07-16 22:01:35
3303
62
原创 【C++】继承
本篇博客主要内容:面向对象三大特性之一——继承。封装,继承和多态。今天我们介绍的就是其中之一——继承。继承听上去很高级,而实际上它就是一种代码复用的手段,它帮助我们凝练代码,增加可读性,简少任务量。继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。// 基类(父类)
2024-07-11 12:09:54
3268
51
原创 【C++】模板进阶
对模板初阶内容的补充,深入对模板的了解和使用。模板初阶当中,我已经介绍过了。什么是泛型编程;模板,分为函数模板和类模板,以及它们的基本用法。在本篇博客中,我们讲补充模板的一些特殊用法,并填补之前挖的坑,为什么不建议模板进行分离编译(声明和定义放到两个文件中)。本篇博客到这里就要结束了,模板进阶的结束也代表着C++初阶语法告一段落。后面我们会接触更多有意思的内容,包括继承,多态以及C++11新语法。同时也会开始我们的数据结构进阶:平衡二叉树,AVL树,红黑树。更便捷的STL工具:map,set等。STL。
2024-07-09 21:32:15
3408
54
原创 【C++】stack和queue的模拟实现 && 双端队列deque的介绍
本篇博客的主要内容:STL库中stack和queue的模拟实现以及deque的介绍。这部分是名副其实的奖励内容了,stack和queue作为容器适配器,是基于一些容器实现(如:vector,list以及deque)。内部结构实现起来很容易,但是需要多多关注模板的一些使用。deque作为容器,也被我们叫做双端队列,常用作栈和队列的底层适配容器。
2024-07-08 11:52:42
1784
71
原创 【C++】stack和queue的使用
本篇博客主要内容:STL库中stack和queue的介绍以及两者用法的讲解。stack中文名是栈,queue中文名是队列,就是之前咱们数据结构部分中学到的。关于介绍部分我们就不深究了,可以借鉴我之前的内容,了解其底层逻辑。初阶数据结构-栈和队列上文中讲到了stack和queue的应用,这两者都是容器适配器,在下一篇关于stack和queue底层实现的讲解里,我们会更详细的讲解其中的内容。本次的内容在前面的基础上学起来容易非常多,但掌握这些工具的用法还需要勤加练习。STLC++
2024-07-06 20:33:28
996
47
原创 我的创作纪念日&&学期总结
本篇博客主要内容:博主的学期总结,对上一个阶段的总结评价以及对下一个阶段的展望。距离我上次创作,已经过去23天了。在这23天里,我既没有刷任何的算法题,也没有按时传gitee仓库,更没有学习任何的编程知识。那我到底去干什么了呢?稍微看看日历也许就能猜到——准备期末考试。本篇博文,我想先讲讲关于我的期末考试,然后总结一下本学期的得失,最后聊聊目前想到的假期任务安排和未来的发展规划。我对本学期总体的评价:干的事儿多,学的东西少。
2024-06-28 17:32:33
1184
65
原创 【C++】list模拟实现
本篇博客主要内容:STL库中list的模拟实现。实现list就和之前的vector和string大不相同了,vector和string的底层结构是顺序表,而list的底层是链表,学习list初阶数据结构-顺序表和链表(C语言)本篇的list实现中,迭代器的实现是重难点,它不再和以前的实现一样,只是单纯的原生指针,而是一个迭代器模板类。希望大家在了解list迭代器的实现之后,能对STL库中容器的迭代器有着更深的认识。
2024-06-05 22:28:06
2900
97
原创 【C++】list的使用(下)
本篇博客主要内容:STL库中list用法的讲解。让我们接着上一篇博文的内容继续,进入list最后一个模块,操作list对象的接口函数。本篇文章所讲到的list内容出自于同一个模块,由于其排序和合并的方式涉及到了仿函数的传递,所以内容和篇幅稍微会大一些。相信学完本篇内容之后,能对list的使用和C++有更充分的了解。♥STLC++
2024-06-01 17:50:53
1511
64
原创 【C++】list的使用(上)
本篇博客主要内容:STL库中list的介绍以及list用法的讲解。我们已经知道,string和vector的底层都是简单的顺序表,而list的底层就和之前的两个大不相同了,list的底层是一个带头双向循环链表。初阶数据结构-顺序表和链表(C语言)在C++中,我们可以直接使用list创建链表。本篇博客给大家初步介绍了list,其底层是一个双向循环链表,讲解了list的一些函数接口,如修改器,元素访问,以及迭代器接口的使用方式。
2024-06-01 17:45:20
1946
89
原创 【C++】vector模拟实现
本篇博客主要内容:STL库中vector的模拟实现。在之前完成string以及学习了vector一些接口函数的基础上,这个vector的实现相当于是一个奖励内容,并不困难。不过我们这里vector底层实现和上次string的有所不同,是通过三个指针_start_finish和来维护这个模板类的。相信在看完今天vector的实现之后,能对C++的迭代器有更深的了解。本篇博客主要介绍了vector常用接口的实现,包括迭代器以及迭代器接口,元素的插入和删除,以及各种默认成员函数的实现。♥STLC++
2024-05-27 19:20:00
1881
162
原创 【C++】vector的使用
本篇博客主要内容:STL库中vector的介绍以及vector用法的讲解。在string部分,我们讲了很大篇幅的内容,一部分原因是因为初次接触STL,当你理解一个时,就会发现其他的内容都是相通的;另一原因就是,string所提供的接口确实太多。本篇将要介绍和讲解的vector,算是string学习的奖励内容,它的本质是我们所实现的动态顺序表。初阶数据结构-顺序表和链表(C语言)在C++中,一般不用数组,而使用vector。
2024-05-22 20:17:05
2073
183
原创 【C++】string模拟实现
本篇博客主要内容:实现string类的基本功能。string使用很快就讲完了,但是光会用string还不够,在面试中,面试官总喜欢让我们自己来模拟实现string类,包括string类的构造、拷贝构造、赋值运算符重载以及析构函数等等内容。所以,我认为string类的自实现还是有必要讲一下的。本篇博客主要介绍了string类常用接口的实现,包括默认成员函数,迭代器,字符和字符串的插入删除等等内容。♥STLC++
2024-05-18 20:30:39
1999
188
原创 【C++】string类的使用④(字符串操作String operations || 常量成员Member constants)
本篇博客主要内容:STL库中string的字符串操作(String operations)和常量成员(Member constants)。来到string类的使用第四篇,继续我们的内容,本篇博客将着重介绍如何使用string类提供的接口函数去查找和获取字符串的内容;同时还会讲一个定义在string类中的常量成员(npos)。本篇也将是string类使用的收尾篇。本篇博客,介绍了关于string的字符串操作,可以查找和获取字符串的相关内容;
2024-05-13 21:05:02
1503
176
原创 【C++】string类的使用③(修改器Modifiers || 非成员函数重载Non-member function overloads)
本篇博客主要内容:STL库中string的修改器(Modifiers)和非成员函数重载(Non-member function overloads)。来到string类的使用第三篇,继续我们的内容,本篇博客将介绍如何使用STL库中string的成员函数修改串,以及重载给string的几个非成员函数。本篇博客,介绍了关于string的修改器,能修改string串中的内容;以及非成员函数的重载,实现了一些成员函数无法完成的功能和任务。♥STLC++
2024-05-11 20:00:36
1329
158
原创 【C++】string类的使用②(容量接口Capacity || 元素获取Element access)
本篇博客主要内容:STL库中容量接口(Capacity)和四种string串中元素获取方式(Element access)的介绍和使用。来到string类的使用第二篇,让我们接着上一篇来讲。本篇博客,介绍了9个容量接口(Capacity),它们有查询string串长度和更改长度的(size,length,resize),也有查询容量和更改容量的(capacity,reserve),和清理的(clear)。
2024-05-09 22:02:07
1959
158
原创 【C++】string类的使用①(默认成员函数 || 迭代器接口begin,end,rbegin和rend)
本篇博客主要内容:STL库中string类的默认成员函数和各种迭代器接口的介绍和使用。在开始我们string类使用接口的讲解之前,想先讲讲为什么我们要学习string类。在C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。简单说,string就是C++STL标准库中便于维护和操作字符串的一个类。
2024-05-08 19:04:34
1490
147
原创 【C++】STL简介
STL简介。开始学习STL之前,是不是得先知道STL是个什么东西,以及如何学习STL呢?话不多说,开始我们今天的内容!是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。本篇博客主要介绍了有关STL的历史,主流版本,六大组件,以及其优缺点和学习方法等内容。希望能帮助到大家。♥C++
2024-05-03 20:12:40
4568
182
原创 【C++】模板初阶
本篇博客主要内容:初步接触C++模板语法。STL库的学习。不过在进入STL内容的深度学习之前,需要给大家简单补充一下C++模板部分的知识。话不多说,开始我们今天的内容。本篇博客主要介绍了模板,从C语言提供Swap功能的缺陷引入,提供了解决代码冗余和可维护性的解决方案——模板。模板分为函数模板和类模板,函数模板允许你编写一个通用的函数,该函数可以处理多种数据类型的参数。类模板允许你编写一个通用的类,该类可以处理多种数据类型的成员。同时还讲到了两种模板的定义和实例化方式,显示实例化和隐式实例化。
2024-05-01 17:56:54
2167
138
原创 【C/C++】动态内存管理(C:malloc,realloc,calloc,free || C++:new,delete)
C++和C语言的动态内存管理方式,机制以及两者之间的区别。在学习C语言的过程中,也曾涉及过动态内存管理,我们可以使用mallocrealloccalloc等函数来动态管理堆中空间资源。而在C++中,有了新的动态内存管理方式,那就是new和delete关键字。忽然发现之前似乎并没有讲C语言的几个动态内存管理函数,所以标题是【C/C++】动态内存管理,不过不止如此,本次还会介绍new,delete关键字的底层,并区分一下C和C++内存管理之间的不同。
2024-04-30 19:08:34
1692
113
原创 【C++】类和对象⑤(static成员 | 友元 | 内部类 | 匿名对象)
类和对象的一些知识点补充,包括static静态成员,友元,内部类等。本篇基本上就是类和对象主要内容的收尾环节了,在前几篇中,已经将六大默认成员函数逐一做了介绍。接下来的内容就是补充一些语法和细节。那么开始我们今天的内容。到这里本篇博客的内容基本上就结束了,类和对象到这里基本上算是基本掌握,算是迈过了C++的第一道坎。我们今天补充了类和对象的一些语法细节,包括static静态成员:没有this指针,所有对象共用;友元:包括友元函数和友元类;
2024-04-27 12:33:32
1724
138
原创 【C++】类和对象④(类的默认成员函数:取地址及const取地址重载 | 再谈构造函数:初始化列表,隐式类型转换,缺省值)
本篇博客将最后两个默认成员函数做了一个收尾,再次谈到了构造函数的一些语法和特性,关于初始化列表的概念和使用;一种很新的创建对象方式,隐式类型转换方式创建对象,而explicit关键字可以限制这种转换的发生;最后还提到了C++11的新特性成员变量的缺省值,列出了对象,指针等类型给缺省值的方式。在类和对象的下一篇,会再介绍几个类和对象的小特性,以及编译器做出的优化。♥。
2024-04-23 16:54:40
2208
111
原创 【C++】日期类Date(详解)
本篇主要内容:日期类的实现和const成员上篇我们介绍了拷贝构造函数和赋值运算符重载两大类的默认成员函数,本篇将会介绍更多关于操作符重载的实例运用。日期类,是与日期相关的类,主要用于处理与日期和时间相关的操作。我们将在完善一个日期类的过程中加深对运算符重载的理解和运用。在理解操作符重载之后,最后两个默认成员函数学习起来也就不是什么大问题了。本篇博客实现了日期类Date,加深对运算符重载的运用,讲了前置++和后置++:传一个改变成后置++样式的int;
2024-04-21 12:49:18
4075
103
原创 【C++】类和对象③(类的默认成员函数:拷贝构造函数 | 赋值运算符重载)
本篇博客主要讲了拷贝构造函数和赋值运算符重载,它们在类中扮演着至关重要的角色,是对象复制和赋值操作的基础,确保对象在复制和赋值过程中保持正确的状态和行为。如果没有正确地实现这两个函数,可能会导致数据不一致、内存泄漏或其他严重问题。因此,在编写自定义类时,通常需要仔细考虑是否需要显式定义拷贝构造函数和赋值运算符重载,并根据类的具体需求来实现它们。对于某些类(如包含动态分配内存的类),显式定义这两个函数是必不可少的。
2024-04-16 21:15:13
2370
97
空空如也
这种字符不匹配的情况怎么解决啊?
2023-10-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人