自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL数据类型

而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,…而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,…有一个调查表votes,需要调查人的性格(男,女)和喜好(篮球,乒乓球,羽毛球,登山,游泳)char(2)表示可以存放两个字符,可以是字母或汉字,但是不能超过2个,最多只能是255。str_list 用逗号分隔的字符串。在MySQL中,整形可以指定是有符号和无符号的,默认是有符号的。

2024-11-17 21:00:14 1519

原创 数据库和表的简单操作

在项目实际开发中,要经常修改某个表的结构,比如字段名字、字段大小、字段类型、表的字符集类型、表的存储引擎等等,或者是添加字段、删除字段等。这时我们就需要修改表。可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是自己正常登陆的,很有可能你的数据库是被人入侵了。这时,打开mytest.sql文件里的内容,其实把我们整个创建数据库、建表、导入数据的语句到装载到这个文件中。如果备份的不是整个数据库,而是其中的一张表呢?字符集,并带校验规则的 db2 数据库。不同的存储引擎,创建表的文件不一样。

2024-11-16 11:05:04 965

原创 数据库基础

存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点:文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便一般的文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力为了更加有效的管理数据,所以就出现了数据库mysql是一套给我们提供数据存取的服务的网络程序数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据—将来在磁盘上存储的一套数据库方案数据库本质:对数据内容存储的一套解决方案数据库存储介质有磁盘和内存。

2024-11-15 09:14:57 1177

原创 C++智能指针

智能指针是一种用于管理动态分配内存的数据结构,通常用于C++等编程语言中。与传统的原始指针相比,智能指针具有自动化内存管理的功能,可以帮助程序员避免内存泄漏和悬空指针等问题。智能指针通过在其生命周期结束时自动释放其所指向的内存来提供这种自动化管理。这样可以确保在不再需要内存时,内存会被正确地释放,从而减少了内存泄漏的风险。shared_ptr:允许多个指针共享同一块内存。内部包含一个引用计数,当最后一个指向内存的shared_ptr被销毁时,内存会被释放。unique_ptr。

2024-05-25 20:13:18 1462

原创 Linux进程调度与切换、环境变量

进程在运行的过程中,要产生大量的临时数据,放在CPU的寄存器中!CPU内部的所有的临时数据,我们叫做进程的硬件上下文。进程下CPU时我们的进程进行保存硬件上下文,以保护上下文。

2024-05-23 18:44:39 1013

原创 Linux 进程

进程的退出状态必须被维持下去,因为他要告诉关心它的进程(父进程),你交给我的任务,我办的怎么样了。可父进程如果一直不读取,那子进程就一直处于Z状态?系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更。在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发。

2024-05-21 15:44:57 1612

原创 Linux动静态库

然后可执行程序的代码和数据加载到物理内存中,因为它可能要用到动态库中的某些函数,动态库的数据和代码也会加载到物理内存中,动态库的数据和代码会通过页表从而映射到进程虚拟地址空间的共享区内。然后可执行程序的代码和数据加载到物理内存中,因为它可能要用到动态库中的某些函数,动态库的数据和代码也会加载到物理内存中,动态库的数据和代码会通过页表从而映射到进程虚拟地址空间的共享区内。地址空间也是一个数据结构对象,每个可执行程序的代码和数据都是不同的,所以每个进程的地址空间初始化也不同,所以又是谁用什么数据来初始化的?

2024-05-20 21:18:25 1001 1

原创 C++ 异常

实际使用中我们都会自定义自己的异常体系进行规范的异常管理,这样抛出的都是继承的派生类对象,捕获一个基类就可以了。

2024-05-11 20:08:51 1295 1

原创 C++11右值引用、新的类功能、可变参数模板

左值是一个表示数据的表达式(如变量名或解引用的指针)。我们可以获取它的地址,也可以对它赋值,左值可以出现在赋值符号的左边,右值不能出现在赋值符号左边。定义const修饰符后的左值,不能给它赋值,但是可以取它的地址。左值引用就是给左值的引用,给左值取别名。int main()// 以下的p、b、c、*p都是左值int b = 1;// 以下几个是对上面左值的左值引用return 0;

2024-05-09 17:03:47 404 1

原创 自定义C++反向迭代器:实现与应用详解

-cur;++cur;return cur!= s.cur;private:在上文提供的代码中,展示了一个简单的自定义反向迭代器的实现。这段代码定义了一个名为 ReverseIterator 的模板类,其中包含了重要的操作符重载,如 operator*、operator->、operator++ 和 operator–。通过这些操作符的定义,我们可以实现反向遍历容器中元素的功能。

2024-03-25 15:22:31 484

原创 Linux进程控制

进程地址空间是数据结构,具体到进程中,就是特定数据结构的对象。我们的地址空间,不具备对我们的代码和数据的保存能力,而是在物理内存中存放的。是通过给我们的进程提供一张映射表–页表,从而将地址空间上的虚拟地址转化到物理内存中。写时拷贝是一种高效的资源管理技术,它通过仅在必要时复制数据,来优化内存使用、提高系统性能、简化进程创建,并支持高效的虚拟内存管理。这种技术的应用显著提高了现代操作系统在处理大量并发进程和内存密集型应用时的效率和响应性。进程终止。

2024-03-24 16:23:05 2029 1

原创 学习vector中的一些常见问题

对于这种情况,流插入和流提取操作的实现需要对每种可能的元素类型进行处理,这会增加标准库的复杂性。迭代器失效是指在容器被修改的过程中,原先的迭代器可能会失效,即不再指向期望的元素或者指向已经被删除的元素。总的来说,正确地管理和使用迭代器是保证程序正确性的重要一环,需要特别注意在进行涉及到容器修改的操作时,尤其要小心迭代器的失效问题。函数可以用来在指定范围内查找特定值,并返回指向找到的第一个匹配元素的迭代器,如果没有找到匹配元素,则返回指向范围末尾的迭代器。中的元素,并逐个将其插入到输出流中。

2024-03-17 15:57:10 1021 1

原创 [Linux] vim及gdb的使用

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。vim我们所需要掌握的有三种模式,分别是命令模式、插入模式、底行模式。

2024-03-01 13:46:52 1191 1

原创 类和对象 下(再谈构造函数 static成员 友元)

虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化,构造函数体中的语句只能将其称为赋初值,而不能称作初始化。声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用static修饰的成员函数,称之为静态成员函数。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非公有成员。

2024-02-21 21:08:21 982

原创 拷贝构造函数 赋值运算符重载

注意:类中如果没有涉及资源申请时,拷贝构造函数是否写都可以;一旦涉及到资源申请时,则拷贝构造函数是一定要写的,否则就是浅拷贝。注意:在编译器生成的默认拷贝构造函数中,内置类型是按照字节方式直接拷贝的,而自定义类型是调用其拷贝构造函数完成拷贝的。为了提高程序效率,一般对象传参时,尽量使用引用类型,返回时根据实际场景,能用引用尽量使用引用。那在创建对象时,可否创建一个与已存在对象一某一样的新对象呢?

2024-02-17 10:17:11 636 1

原创 this指针 构造函数 析构函数

对于Date类,可以通过 Init 公有方法给对象设置日期,但如果每次创建对象时都调用该方法设置信息,未免有点麻烦,那能否在对象创建时,就将信息设置进去呢?注意:C++11 中针对内置类型成员不初始化的缺陷,又打了补丁,即:内置类型成员变量在类中声明时可以给默认值。,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象,通过前面构造函数的学习,我们知道一个对象是怎么来的,那一个对象又是怎么没呢的?默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。

2024-02-16 14:52:19 2263 1

原创 类与对象 上

/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字ClassName为类的名字{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。

2024-02-14 22:07:10 974 1

原创 C++入门 下 (引用 内联函数 auto关键字 基于范围的for循环)

以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用。在语法概念上引用就是一个别名,没有独立空间,和其引用实体共用同一块空间。在底层实现上实际是有空间的,因为引用是按照指针方式来实现的。,编译器不会为引用变量开辟内存空 间,它和它引用的变量。类型& 引用变量名(对象名) = 引用实体;注意:引用类型必须和引用实体是。

2024-02-13 23:19:56 1174 1

原创 C++入门 上(命名空间 缺省参数 函数重载)

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{} 中即为命名空间的成员。注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

2024-02-12 21:04:14 1598 2

原创 数据在内存的存储

大端(存储)模式:是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。小端(存储)模式:是指一个数据的低位字节序内容存放在低地址处,高位字节序的内容存放在高地址处。(可以总结为“小小小”即低位、低地址、小端)在计算机系统中,我们是以字节为单位存放数据的,每个地址单元都对应着一个字节,一个字节为8bit。但在C语言中存在不同的数据类型,占用的字节数也各不相同,那么就存在怎样存放多个字节的问题,因此就出现了大端存储模式和小端存储模式。

2024-02-12 20:46:05 836 1

原创 双向带头链表的增删改查(C语言)

一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了。带头双向循环链表是一种链表结构,它与普通的双向循环链表相比,多了一个。头结点即为链表的起始节点,它没有数据域,只有指针域,指向链表的第一个节点。带头双向循环链表的最后一个节点的指针域指向头结点,头结点的指针域指向最后一个节点,这样就形成了一个环。带头双向循环链表可以。

2023-11-17 19:21:55 56

原创 单链表的增删改查(C语言)

概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

2023-11-17 11:50:27 213

原创 自定义类型:结构体、枚举、联合

有了结构体类型,那如何定义变量,其实很简单。int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或signed int。

2023-10-06 13:37:00 72 3

原创 常见内存函数(C语言)

本文主要介绍常见内存函数的使用及注意事项,以及模拟实现内存函数要用到头文件 #include参数目的地指向要在其中复制内容的目标数组的指针,类型转换为 void* 类型的指针。源指向要复制的数据源的指针,类型转换为 const void* 类型的指针。数字要复制的字节数。size_t 是无符号整数类型。函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。这个函数在遇到 '\0’的时候并不会停下来。

2023-09-21 13:49:43 89 1

原创 关于数据在内存中的存储

在进行相关的讲解之前,我们可以一起回忆一下数据的基本内置类型。char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数大端(存储)模式:是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。小端(存储)模式。

2023-08-14 14:59:31 48

原创 C语言实现三子棋(n子棋)

运用C语言实现三子棋(n子棋)

2023-07-31 09:10:28 151 1

空空如也

空空如也

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

TA关注的人

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