自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构(3)——双链表的实现

在数据结构(2)中,我实现了其中一种较为常用的链表形式-单向无头不循环链表。那在这篇博客中,我来实现另一种——双向有头循环链表。结构示意图:该链表包含一个哨兵位的头结点,该结点的data成员不存储实际数值;每一个结点都有两个指针,分别指向上一个结点的后指针和下一个结点的前指针;最后一个结点的后指针指向哨兵位头结点的前指针,构成闭环;双向有头循环链表结构较为复杂,实现起来也需要较多的思维量和代码量,但是在运用时会比单向链表方便很多。这次我们也是分为三个文件:Dlist.hDlis.

2021-09-01 22:55:43 159

原创 数据结构(2)——单链表的实现

在“数据结构(1)”中,我在博客中实现了顺序表的定义功能和基本功能函数。那么这篇博客我想以相同的思路来实现单链表。单链表也是一种数据存储结构,与顺序表性比,单链表存储数据所用的空间不是连续的,在内存中是一块块零散的空间,通过指针相连。因此,在单链表的结构体中,有两个成员:struct SListNode{ DataType data;//用于存储数据 struct SListNode* next;//用于指向下一块空间};示意图:...

2021-08-30 21:56:20 268

原创 数据结构(1)——顺序表的实现

本文将通过C语言模拟顺序表,实现基本函数。顺序表是线性表的顺序表示,即用一组地址连续的存储单元依次存储线性表的数据元素。物理结构大概如下图所示:通过数据表,我们将实现数据的增删查改等功能,每个功能都由单独的接口函数来实现。按照正规工程的写法,我们还是分成三个文件来写:Seqlist.h 顺序表结构体的创建、各函数的声明Seqlist.c 各函数的实现Test.c 用于测试一、Seqlist.h为了能使该顺序表存各种类型的数据,使用typedef重命名。比如要存

2021-08-29 14:04:13 260

原创 C++初阶(8) —— string类的部分接口函数讲解

string类是C++自带的一个很重要的类。今天我想讲一些string类中常用的接口函数。使用string类时,必须包含头文件#include< string>一、用于初始化的接口函数注:size_t 等价于 unsigned int函数声明形式作用string()构造空的字符串对象,即构造空字符串string(const string& str)拷贝构造string(const char* s)用C格式字符串构造string对象st.

2021-08-26 11:53:37 173

原创 C++初阶(6)—— 动态内存开辟函数 C中的malloc calloc realloc free与C++中的new delete delete比较

C中常用的动态内存开辟的函数有malloc,calloc,realloc。我们先来讲解这三个函数的用法。1.malloc头文件:#include<stdlib.h>引用格式:void* malloc(size_t size)含义: 向内存申请size个字节的空间,并返回该块空间的起始地址。如果开辟失败,将返回NULL注意默认的返回类型是void*,实际使用时会在malloc前面加上想要强转成的类型用法举例:int* p = (int*)malloc(10 * sizeof(int)

2021-08-23 14:52:36 157

原创 C++初阶(5)—— 构造函数的初始化方式、static成员、友元、重载<<与>>

在C++初阶(4)中,我们具体实现了Date日期类。今天我想继续往下讲C++的其他一些语法知识点。一、构造函数的初始化方式使用构造函数对对象进行初始化时,有两种方式:(1)函数体内实现class Date{public: Date(int year, int month, int day) { _year = year; _month = month; _day = day; }private: int _year; int _month; int _day;};.

2021-08-19 23:15:22 210

原创 C++初阶(4)——Date日期类的具体实现

参照正规项目的写法,我们分成三个文件:Date.h——类的实现和函数声明Date.cpp——函数实现test.cpp——测试用例Date.h#pragma once#include<iostream>//正规的项目写法中,只展开几个常用的函数,不展开整个命名空间using std::cout;using std::endl;using std::cin; //本类中成员变量都是内置类型,因此析构,拷贝构造,赋值重载都可以不用写 class Date{publ

2021-08-19 11:55:23 550

原创 C++初阶(3) 类中的默认成员函数——构造函数、析构函数、拷贝构造函数、赋值运算符的重载

今天我们来讲类中的默认成员函数一、构造函数·功能虽然名称叫“构造,”主要任务并不是开空间创建对象,而是初始化对象·特征函数名与类名相同无返回值对象实例化时编译器自动调用相应的构造函数构造函数可以重载(一个类的对象可以有多种初始化方式)我们以Data类为例,分别讲述构造函数的几种情况:class Data{private: int _year; int _month; int _day;};(1)没有自己定义构造函数时,编译器会自动生成构造函数,对象也可以创建成功.

2021-08-18 16:37:36 263

原创 C++初阶(2)——内联函数、范围for、类的引入

C++初阶(2)——内联函数、范围for、类的引入今天紧接着上一期的初阶(1),讲其他一些C++初阶的知识点一、内联函数为了避免频繁使用的小函数在使用是建立栈帧,C和C++都有各自的方法。C提供宏(#define),在预处理阶段就展开;而C++提供内联函数,将频繁调用的小函数,定义成inline,会使此函数在调用的地方展开,没有栈帧开销使用举例:inline Add(it a, int b){ return a + b;}int main(){ ...}但我们不建议把所有的函数

2021-08-17 15:46:56 184

原创 C++初阶(1) ——std命名空间、cin与cout、缺省参数、引用、函数重载

C++入门(1)——std命名空间、cin与cout、缺省参数、引用、函数重载从今天这篇博客起,我想从我所掌握的角度,逐渐向大家介绍C++的初阶知识。一、关于std std::是个名称空间标识符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准库中的函数或者对象都要用std来限定。比如我们要使用标准库中的cout,直接调用是不行的。下面有三种方法来帮助我们调用:plan1:指定命名空间(在函数前面加上标准库名),即每使用一次,都在前面加上std::特点:是最规

2021-08-16 22:36:12 667

空空如也

空空如也

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

TA关注的人

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