自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VMware虚拟机中安装Ubuntu以及与Windows的数据拖拽互通

把注释符号 ‘#’ 删除,保存文件并重启虚拟机。之后就可以在虚拟机和物理机之间拖拽复制文件。发现它已经成功启动了。此时你还需要打开/etc/gdm/custom.conf配置文件。Ubuntu安装完成之后不要装VMware tools。2.联网安装VMware tools。1.卸载open-vm-tools。如果发现它的状态是disable。

2025-06-03 21:52:44 199

原创 STL-常用集合算法

求交集的两个集合必须的有序序列目标容器开辟空间需要从。

2025-06-03 13:06:13 136

原创 STL-常用算术生成算法

accumulate使用时头文件注意是 numeric,这个算法很实用。

2025-06-03 13:01:26 137

原创 STL-常用拷贝和替换算法

利用copy算法在拷贝时,目标容器记得提前开辟空间。

2025-06-03 12:55:14 189

原创 STL-常用排序算法

sort属于开发中最常用的算法之一,需熟练掌握。

2025-06-03 12:44:52 155

原创 STL-常用查找算法

二分查找法查找效率很高,值得注意的是查找的容器中元素必须的有序序列。

2025-06-02 18:45:04 492

原创 STL-常用遍历算法

for_each在实际开发中是最常用遍历算法,需要熟练掌握。

2025-06-02 18:36:25 93

原创 STL- 函数对象

重载的类,其对象常称为使用重载的()时,行为类似函数调用,也叫函数对象(仿函数)是一个,不是一个函数。

2025-06-02 18:30:13 488

原创 map/ multimap容器

map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序。

2025-06-02 16:09:06 471

原创 set/ multiset 容器

所有元素都会在插入时自动被排序。

2025-06-02 15:54:50 406

原创 list容器

List有一个重要的性质,插入操作和删除操作都不会造成原有list迭代器的失效,这在vector是不成立的。//在pos位置插入[beg,end)区间的数据,无返回值。//在pos位置插elem元素的拷贝,返回新数据的位置。//删除[beg,end)区间的数据,返回下一个数据的位置。//重新指定容器的长度为num,若容器变长,则以elem值填充新位置。//删除pos位置的数据,返回下一个数据的位置。//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。//删除容器中所有与elem值匹配的元素。

2025-06-02 14:35:25 617

原创 queue 容器

(First In First Out,FIFO)的数据结构,它有两个出口。//queue采用模板类实现,queue对象的默认构造形式。队列容器允许从一端新增元素,从另一端移除元素。判断队是否为空 --- empty。返回队头元素 --- front。返回队尾元素 --- back。返回队列大小 --- size。队列中进数据称为 ---队列中出数据称为 ---//从队头移除第一个元素。//返回最后一个元素。//判断堆栈是否为空。入队 --- push。出队 --- pop。

2025-06-01 21:13:52 180

原创 stack容器

stack是一种(First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 ---push栈中弹出数据称为 ---pop。

2025-06-01 21:10:02 192

原创 deque容器

deque容器和vector容器的构造方式几乎一致,灵活使用即可。

2025-06-01 18:09:52 518

原创 vector容器

vector的多种构造方式没有可比性,灵活使用即可。

2025-06-01 16:45:52 676

原创 string容器

插入和删除的起始下标都是从0开始。

2025-06-01 14:42:09 730

原创 STL初识

学习目标:vector中存放自定义数据类型,并打印输出​//自定义数据类型public:mAge = age;//存放对象​​//创建数据​​it!= v.end();it++) {​​​//放对象指针​​//创建数据​​it!= v.end();test02();​​return 0;

2025-06-01 14:04:55 478

原创 C++类模板

解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制。总结:主流的解决方式是第二种,将类模板成员函数写到一起,并将后缀名改为.hpp。当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型。总结:类模板中的成员函数并不是一开始就创建的,在调用时才去创建。建立一个通用类,类中的成员 数据类型可以不具体制定,用一个。T --- 通用的数据类型,名称可以替换,通常为大写字母。总结:如果父类是类模板,子类需要指定出父类中T的数据类型。

2025-05-31 16:54:55 831

原创 C++函数模板

C++另一种编程思想称为,主要利用的技术就是模板和。

2025-05-31 15:16:00 466

原创 C++文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过C++中对文件操作需要包含头文件- 文件以文本的形式存储在计算机中- 文件以文本的形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:ofstream:写操作ifstream: 读操作fstream : 读写操作。

2025-05-31 14:23:57 224

原创 C++多态与虚函数

总结:一个继承类的基类如果包含虚函数,那个这个继承类也有拥有自己的虚表,故这个继承类的对象也包含一个虚表指针,用来指向它的虚表。所以当父类指针指向子类对象时(多态),调用的是子类已重写的虚函数。

2025-05-30 19:27:35 867

原创 C++继承

继承是面向对象三大特性之一例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表,只有中心内容不同接下来我们分别利用普通写法和继承的写法来实现网页中的内容,看一下继承存在的意义以及好处普通实现:继承实现:总结:继承的好处:可以减少重复的代码class A : public B;A 类称为子类 或 派生类B 类称为父类 或 基类派生类中的成员,包含两大部分:一类是从基类继承过来的,一类是自己增加的成员。从基类继承过过来的表现其共性,而新增的成员体现了其个性。继承的语法:继承方式一共

2025-05-30 15:08:35 921

原创 C++运算符重载

运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

2025-05-30 14:14:05 205

原创 C++友元

生活中你的家有客厅(Public),有你的卧室(Private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是呢,你也可以允许你的好闺蜜好基友进去。在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的就是让一个函数或者类 访问另一个类中私有成员友元的关键字为友元的三种实现全局函数做友元类做友元成员函数做友元。

2025-05-29 20:03:55 204

原创 C++对象模型和this指针

每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。C++中空指针也是可以调用成员函数的,但是也要注意有没有用到this指针。在类的非静态成员函数中返回对象本身,可使用return *this。成员属性声明时加关键字mutable后,在常函数中依然可以修改。c++通过提供特殊的对象指针,this指针,解决上述问题。this指针是隐含每一个非静态成员函数内的一种指针。如果用到this指针,需要加以判断保证代码的健壮性。在C++中,类内的成员变量和成员函数分开存储。

2025-05-29 19:45:47 274

原创 对象的初始化和清理

生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全C++中的面向对象来源于生活,每个对象也都会有初始设置以及 对象销毁前的清理数据的设置。

2025-05-29 18:12:55 1269

原创 C++封装

设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号。类在设计时,可以把属性和行为放在不同的权限下,加以控制。将所有成员属性设置为私有,可以自己控制读写权限。在设计类的时候,属性和行为写在一起,表现事物。将属性和行为作为一个整体,表现生活中的事物。在C++中 struct和class唯一的。对于写权限,我们可以检测数据的有效性。struct 默认权限为公共。class 默认权限为私有。将属性和行为加以权限控制。设计一个圆类,求圆的周长。private 私有权限。

2025-05-29 15:03:33 300

原创 C++函数重载

函数名可以相同,提高复用性同一个作用域下函数名称相同函数参数类型不同或者个数不同或者顺序不同函数的返回值不可以作为函数重载的条件//函数重载需要函数都在同一个作用域下cout << "func 的调用!" << endl;cout << "func (int a) 的调用!" << endl;cout << "func (double a)的调用!" << endl;cout << "func (int a ,double b) 的调用!" << endl;

2025-05-29 12:46:20 182

原创 C++引用

结论:C++推荐用引用技术,因为语法方便,引用本质是指针常量,但是所有的指针操作编译器都帮我们做了。总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单。函数传参时,可以利用引用的技术让形参修饰实参。作用:引用是可以作为函数的返回值存在的。常量引用主要用来修饰形参,防止误操作。引用在初始化后,不可以改变。在函数形参列表中,可以加。用法:函数调用作为左值。可以简化指针修改实参。

2025-05-29 12:37:51 310

原创 内存分区模型

堆区数据由程序员管理开辟和释放堆区数据利用new关键字进行开辟内存。

2025-05-28 20:25:45 233

原创 C++基础入门

所谓数组,就是一个集合,里面存放了相同类型的数据元素**特点1:**数组中的每个数据元素都是相同的数据类型**特点2:**数组是由连续的内存位置组成的数据类型 数组名[ 数组长度 ];数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};数据类型 数组名[ ] = { 值1,值2 ...};示例//定义方式1//数据类型 数组名[元素个数];//利用下标赋值//利用下标输出//第二种定义方式//数据类型 数组名[元素个数] = {值1,值2 ,值3 ...};

2025-05-28 14:21:05 1216

原创 C语言栈详解

栈(Stack)是一种后进先出(LIFO, Last In First Out)的线性数据结构。它只允许在一端(栈顶)进行插入和删除操作。常见于函数调用、表达式求值、括号匹配、撤销操作等场景。在C语言中,常用顺序表(动态数组)实现栈。每个栈结构体包含:数据区(动态数组)栈顶指针容量// 数据类型定义​// 栈结构体// 动态数组int top;// 栈顶指针,指向栈顶元素的下一个位置// 当前容量} ST;栈是一种常用的数据结构,适合需要后进先出处理的场景。

2025-05-27 16:40:12 294

原创 C语言队列详解

队列(Queue)是一种先进先出(FIFO, First In First Out)的线性数据结构。它只允许在一端插入数据(队尾),在另一端删除数据(队头)。常见于排队、消息缓冲等场景。在C语言中,常用链式结构实现队列。每个节点包含数据域和指向下一个节点的指针。// 队列节点结构体​​// 队列结构体// 队头指针// 队尾指针} Queue;队列是一种常用的数据结构,适合需要按顺序处理数据的场景。掌握其链式实现原理和常见操作,有助于更好地理解数据结构和C语言指针操作。

2025-05-27 15:50:41 276

原创 双向链表详解

双向链表(Doubly Linked List)是一种链式数据结构,每个节点包含三个部分:数据域、指向前驱节点的指针(prev)、指向后继节点的指针(next)。与单向链表相比,双向链表可以方便地进行前向和后向遍历,插入和删除操作也更加灵活高效。// 数据类型定义​// 双向链表节点结构体// 数据域// 指向前驱节点// 指向后继节点} LTNode;双向链表是链表家族中非常重要的一员,适合需要频繁在两端或中间插入、删除元素的场景。

2025-05-27 14:44:20 337

原创 单链表详解

单链表(Singly Linked List)是一种物理存储结构上非连续、非顺序的线性表。它通过指针将一系列节点连接起来,每个节点包含数据域和指向下一个节点的指针域。单链表的逻辑顺序通过指针链接次序实现。单链表是一种灵活的线性结构,适合插入、删除频繁且空间利用率要求高的应用场景。虽然不支持高效的随机访问,但在实际开发中,单链表常作为更复杂数据结构(如哈希表、邻接表等)的基础。

2025-05-26 15:48:53 258

原创 顺序表详解

顺序表(Sequential List)是线性表的一种实现方式。它利用一段物理地址连续的存储空间(通常是数组)来依次存放线性表中的元素。顺序表的每个元素在内存中都是紧挨着存储的,因此可以通过下标(索引)直接访问任意位置的元素。顺序表属于线性结构,常用于需要频繁随机访问的场景。//静态顺序表的设计结构(固定大小,不能按需索取)//{//存放几个有效数据//};//动态顺序表的设计结构(空间大小可变)//指向动态开辟的数组int size;//有效数据的个数//空间容量的大小。

2025-05-26 14:17:06 263

原创 C语言文件操作详解

程序文件:如.c源文件、.obj目标文件、.exe可执行文件。数据文件:程序运行时读写的数据文件。本章主要讨论数据文件。文件名通常由路径+主干+后缀。文件操作是C语言实现数据持久化的基础。熟练掌握文件的打开、关闭、顺序/随机读写、文本/二进制操作。注意文件结束判定和缓冲区机制,避免常见错误。文件操作虽基础,但细节繁多,建议多练习、多调试,养成良好的文件管理习惯。

2025-05-24 18:07:32 664

原创 C语言预处理详解

C语言的预处理是编译前对源代码进行的文本处理。预处理器会根据以开头的指令,对代码进行宏替换、文件包含、条件编译等操作。预处理主要包括:宏定义(#define文件包含(#include条件编译(宏取消(#undef预定义符号预处理操作符(和##符号作用__FILE__当前源文件名__LINE__当前行号__DATE__编译日期__TIME__编译时间__STDC__若遵循ANSI C则为1,否则未定义int main()//当前.c文件的存放路径,和当前代码的行数37return 0;

2025-05-24 16:42:49 422

原创 C语言动态内存分配详解

动态内存分配是C语言灵活管理内存的关键。正确使用,避免常见错误。柔性数组是结构体内存管理的高级技巧。动态内存分配虽强大,但也需谨慎,养成良好的内存管理习惯,才能写出高质量的C语言代码。

2025-05-24 15:30:00 896

原创 C语言结构体(内存对齐)、枚举与联合体详解

结构体是将不同类型的数据组合在一起的自定义类型。int age;可以在声明时定义变量:结构体标签可省略,但不同匿名结构体类型互不兼容。枚举用于定义一组有名字的整型常量。enum Day//星期Mon,Tues,Wed,Thur,Fri,Sat,Sunenum Sex//性别//枚举的可能取值MALE,FEMALE,SECRET//以上定义的 enum Day , enum Sex , enum Color 都是枚举类型。

2025-05-23 22:50:38 468

空空如也

空空如也

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

TA关注的人

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