自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 [Linux网络通信]socket函数

socket函数用于Linux网络通信,传入的参数为对网络协议的描述,会返回一个文件描述符,该文件用于网络通信,如果C/C++中0,1,2默认被使用,如果没有打开其他文件的话一般就是3在Linux环境下可以通过man 2 socket 指令查看Linux官方介绍socket的文档。

2024-07-16 13:32:10 546

原创 [c++] 可变参数模版

可变参数模板是C++11及之后才开始使用,学校的老古董编译器不一定能用相信大家在刚入门c/c++时都接触过printf函数printf用于将数据格式化输出到屏幕上,它的参数非常有意思,可以支持任意数量,任意类型的多参数.而如果我们想实现类似这种的传参,在C里似乎并不支持c++11提出了可变模板参数来解决这一问题。

2024-07-07 11:01:32 532

原创 [c++] 类型推导 typeid decltype auto

2024-06-28 12:07:46 317

原创 [c++] 类型推导 typeid decltype auto

诸如python这类语言,声明对象和函数返回时都不需要显示声明类型,如果程序比较复杂很容易在函数多级传参时找不到返回值的数据类型,这时类型推导就是一件很有意义的事了,而c/c++中,函数的返回值类型都是显示传递的,不同类型之间还不能直接进行赋值,看起来类型推导是一件没什么意义的事情首先类型推导本身就是一件可以的事情,一些很复杂的类型,比如map嵌套一个string,一个set的迭代器可以直接用auto四个字母来代替其次 在c++14中,允许函数以auto做返回值,这种神似python的操作也很让人蛋疼。

2024-06-28 12:06:11 430

原创 [MYSQL] MYSQL表的操作

由图可以看出,表是库的一部分,所以有库才能使用表showdatabases;查看已有的库db_name;创建库使用usebd_name 使用库,之后对标进行增删查改就只会操作这个库里的而不影响其他库。

2024-06-27 17:14:08 462

原创 [MYSQL] MYSQL库的操作

本文主要介绍MYSQL里 库 的操作请注意 : 在MYSQL中,命令行是不区分大小写的。

2024-06-25 19:12:39 453

原创 [MYSQL] 数据库基础

1.什么是数据库从数据库的名字可以看出,它是用来操作(增删查改....)数据的,事实上也的确如此,通过数据库,我们可以更方便.更高效的来操作.管理数据以文件形式存储数据的缺点文件的安全问题 文件不利于数据的查询和删除 文件不利于存储海量数据 操作文件并不方便为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。 mysql的底层mysql的底层实际上是对文件操作的封装+一个shell脚本,在cent

2024-06-23 18:56:55 1164

原创 c++ map set底层模拟实现

2024-06-19 20:00:58 186

原创 c++ map set底层模拟实现

c++ stl map+set底层实现

2024-06-19 19:57:02 472 1

原创 红黑树插入数据的底层详解

2024-06-18 13:51:09 220

原创 红黑树插入数据的底层详解

这里我按stl库里set,map的insert函数最主要的模型进行实现把红黑树的定义拉过来1. 每个结点不是红色就是黑色2. 根节点是黑色的3. 如果一个节点是红色的,则它的两个孩子结点是黑色的4. 对于每个结点,从该结点到其所有后代叶结点的简单路径上,均 包含相同数目的黑色节点5. 每个叶子结点都是黑色的(此处的叶子结点指的是空结点)如果新节点是黑色,新插入节点所在路径上的颜色一定不同于其他路径.定义4失效,此时需要更改某些路径上的黑色节点,最差情况需要重构整颗树。

2024-06-18 13:48:50 1157

原创 unordered_set,unordered_map模拟实现

c++实现unordered_setunorder_map

2024-06-11 15:06:45 170

原创 LINUX----进程替换,exec族函数

介绍进程替换exec家族的六个函数

2024-06-06 17:08:18 241

原创 c++右值引用详解!

c++中,无论是左值引用与右值引用,用途都是在给对象起别名左值引用需要在变量类型之后,名字之前加 &右值引用需要在变量类型之后,名字之前加 &&move是一个库函数,可以把左值强制转为右值左值引用左值,右值引用右值如下int a = 0;// 左值引用//const 左值引用// 右值引用// const右值引用//必须加const 左值引用右值int f = 0;// 右值引用左值必须加move// 右值引用左值必须加movereturn 0;左值引用右值必须加const。

2024-06-04 16:19:09 619

原创 AVL树底层原理+模拟实现

c++实现AVL树

2024-05-27 14:23:49 329

原创 二叉搜索数使用,底层原理及代码实现

1:二叉搜索树的定义1:二叉搜索树的定义二叉搜索树的底层是一个二叉链表,或者是具有以下性质的二叉树2.二叉搜索树的特点3.二叉搜索树的底层原理。

2024-05-12 14:22:14 575

原创 c++STLpriority_pueue使用与底层原理,模拟实现

使用priority_pueue需包含头文件queue。

2024-04-30 13:36:16 231

原创 c++刷题------ 最长无重复子数组

介绍一道题

2024-04-28 21:28:40 140

原创 c++map类operator[]详解

让我们来看一下标准库里对该函数的定义.参数是一个key_val类型的值,返回值是对应key 的value值,如果key不存在的话,value会调用其默认构造函数来初始化.

2024-04-27 12:00:00 326 1

原创 最长回文子串问题

一道题

2024-04-26 16:19:58 423

原创 c++------初识多态

必须通过基类指针或引用来调用虚函数被调用的函数必须是虚函数,派生类必须对其完成虚函数的重写//举个例子public:virtual void fun() { //这里必须使用虚函数public:virtual void fun() { //这里可以不使用虚函数p.fun();Student s;f(p);f(s);return 0;

2024-04-26 10:33:47 356

原创 linux进程间通信实现----system V

父进程与子进程是相互独立的,子进程无法直接给父进程传递信息,但是父进程和子进程可以访问同一块磁盘文件,如果子进程更改了磁盘文件,父进程就可以通过访问该文件来进行交互,进而实现通信。因为1.这个中间文件只是用来交互,没有其他实际作用,2.从磁盘书写和更改文件的代价过大。所以这个中间文件最好存储在内存。操作系统不允许两个进程直接访问同一块内存空间,如果同时访问会发生写实拷贝,但是操作系统会提供一些特殊的接口来允许一些特殊关系的进程访问同一块内存,这是操作系统层面的,所以可以绕过页表。

2024-04-21 11:48:00 375 1

原创 c++-----继承

机制是面向对象程序设计的最重要的手段,它允许程序员在,增加功能,这样产生新的类,称派生类。继承,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,简单来说,继承是实现代码复用的一种手段。

2024-04-16 17:16:42 646

原创 c++STL list 简单模拟实现

简单的模拟实现了c++中list

2024-04-07 18:48:57 250

原创 算法练习----力扣每日一题------7

n为parent的长度,也为多叉树的节点个数,parent中存的是每个节点的父节点的编号,例如parent[3] = 1代表3号节点的父节点是1号节点。假设调用a次get:总时间复杂度o(n*log(n)+a*log(k))空间复杂度o(n*log(n))构造函数时间复杂度o(n*log(n))空间复杂度o(n*log(n))假设调用a次get:总时间复杂度o(n*n)空间复杂度o(n*n)get函数时间复杂度o(log(k)) 空间复杂度o(1)构造函数时间复杂度o(n*n)空间复杂度o(n*n)

2024-04-06 16:52:30 572

原创 算法练习----力扣每日一题------6

给两个二叉树,original和它的克隆树cloned,二者存的数据和数据的相对位置完全一样,给一个o树里的节点target,求对应的cloned树对应节点的地址或引用。很简单的遍历二叉树,我不多解释了。

2024-04-03 18:32:02 799 1

原创 算法练习----力扣每日一题------5

我看了几个题解,大伙差不多的解法算出来的不怎么统一,我水平不算高,就不在这班门弄斧了,(ps:力扣官方给的空间复杂度是o(1),这光dp里就有n+1个vector,属实是离谱了)。要求一个含有n个节点的真二叉树,可以直接从根节点往下递归,也可以先求出一些较小数字对应的二叉树,再由较小的二叉树拼接成大叉树。给一个整数,返回所有可能的真二叉树vector<TreeNode*>类型,每棵树的val都必须为0。从思路上,显然第二种方法更好写一些,不过它会需要使用更多的内存空间。我这边使用的是第二种写法。

2024-04-02 21:00:00 241

原创 算法练习----力扣每日一题------4

刷题记录

2024-04-01 18:00:00 391

原创 算法练习----力扣每日一题------3

给一个字符串,判断它是否是一个二叉树的前序遍历.不同元素由逗号隔开,空节点用#字符代替.运行结束后,在递归执行的入口处如果pos等于数组长度-1,证明成立,否则不成立.对于preorder[pos]处的递归判断来说。将多字符元素转化成单子符元素,这个比较简单就不多说了。在接口中调用一个递归函数。(这样可以先不考虑烦人的多个字符情况)

2024-03-31 19:00:00 305

原创 算法练习----力扣每日一题------2

我们可以把大问题拆成小问题。如果在子问题中:我们有从1到n的子数组和,此时有两种情况1.子 coins[i] < n -----> 不用插入,n+=conis[i];2.子 coins[i] >= n -----> 需要插入,当插入值比n大时,会出现间隙,比n小时由于题目要求最少元素,故不合题意,因此插入一个n是最好的,n*=2.首先,conis 是无序的,如果我们在进行前半部分的判断时选择插入一个值,而此值如果恰好存在于后半部分,那这个插入就是无意义的,我们可以将coins排升序来解决这一问题。

2024-03-30 17:00:00 335

原创 算法练习----力扣每日一题------1

力扣刷题

2024-03-29 22:35:02 388

原创 c++----类和对象 2:构造函数

介绍类与对象中的构造函数

2024-02-04 15:24:39 356

原创 从c到c++——6:auto

介绍auto类型

2024-01-26 10:42:14 766

原创 从c到c++——5:内联函数

内联函数

2024-01-25 12:26:46 554

原创 从c到c++——4:引用

在《水浒传》中,梁山一百零八好汉,每个人都有一个响亮的外号,比如,当我们提到李逵和提到黑旋风提到铁牛时,本质上我们指的是同一个人。黑旋风江州劫法场,那李逵,铁牛也有江州劫法场的经历。引用也是这个道理。

2024-01-25 11:01:09 1276

原创 从c到c++——03:函数重载

介绍c++中函数重载及其原理

2024-01-24 17:10:28 1120

原创 从c到c++——02:缺省参数

缺省参数及其原理

2024-01-24 14:55:26 697

原创 从c到c++——01.命名空间

介绍c++中命名空间

2024-01-23 17:34:17 565

原创 从c到c++——00.后缀问题

c++的后缀有很多,具体哪个能用哪个不能用因编译器而异,在C++ Primer上给出一些常见的源文件后缀,有cc,cxx,cpp,cp,C,这么五种。就目前而言cpp,cc,cxx这仨还是最常用的后缀。

2024-01-23 15:07:39 327

原创 归并排序_c语言实现

介绍归并排序的思路及实现

2024-01-15 17:54:46 370

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除