自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Vcrossover的博客

我的第一篇博客!

  • 博客(9)
  • 收藏
  • 关注

原创 【C++】类和对象(下)

静态成员在类当中,用static修饰的成员变量,称为静态成员。用static修饰的成员函数,称为静态成员函数。静态成员必须在类外进行初始化。静态成员在类外初始化的方法:类名::成员名 ,在初始化时不用加关键字static,因为静态成员的初始化不同构造函数,所以有其返回值,并且静态成员不属于某一个对象,其为同一个类下所有对象的共享。静态成员函数在类当中在函数体之前加上关键字static,静态成员函数,没有隐藏的this指针,因此,其只能访问静态成员变量,不能访问非静态成员变量。非静态成员函数可以调

2020-12-22 23:50:39 112

原创 【数据结构】约瑟夫环问题

约瑟夫环约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3。分析:(1)由于对于每个人只有死和活两种状态,因此可以用布尔型数组标记每个人的状态,可用true表示死,false表示活。(2)开始时每个人都是活的,所以数组初值全部赋为false。(3)模拟杀人过程,直到所有人都被杀死为止。换一个角度来理解这道题目既然约塞夫问题就是用人来举例的,那我们也给每个人一个编号(索引值),每个人用

2020-12-22 23:47:12 1250

原创 【数据结构】封装单链表

  今天将之前所学习的链表进行封装,增加一些操作,重载输入,输出运算符。一、概念结点:数据元素的存储映像链表:n个结点链接成起来形成一个链表,即为线性表的 链式存储结构单链表: 结点中只包含一个指针域头指针:指向链表中第一个结点(或为头结点、或为首元结点)的指针头结点:在链表的首元结点之前附设的一个结点;数据域内只放表长等信息,它不计入表长度。其作用是统一空表、和非空链表的形式首元结点:指链表中存储线性表第一个数据元素a1的结点二、封装链表类#pragma once#include&

2020-12-21 23:54:15 379

原创 【数据结构】封装顺序表

  最近在看《大话数据结构》,回顾一下之前数据结构的学习,之前是用C语言来完成的代码,鉴于已经学习了C++,此次便使用类来进行顺序表的封装吧!一、概念  顺序表,全名顺序存储结构,是线性表的一种,他符合线性表“一对一”的逻辑关系。同时又占用一组地址连续的存储单元。动态顺序表:指的是用来存储数据的数组大小是我们动态申请的,用起来比较灵活。静态顺序表:在设计的时候,就已经规定了数组的大小,不灵活。此次我们使用的是动态顺序表来进行的操作。二、设计顺序表线性表的动态分配顺序存储结构typedef

2020-12-15 13:07:12 1194

原创 【C++】Vector和List的区别

 在学习stl的时候,总是有同学分不清楚Vector和List的使用,在这里我总结一下它们的区别和使用方法。一、底层结构 vector的底层结构是动态顺序表,在内存中是一段连续的空间。 list的底层结构是带头节点的双向循环链表,在内存中不是一段连续的空间。二、支持随机访问 vector支持随机访问,可以利用下标精准定位到一个元素上,访问某个元素的时间复杂度是O(1)。 list不支持随机访问,要想访问list中的某个元素只能是从前向后或从后向前依次遍历,时间复杂度是O(N)。三、插入和删除的

2020-12-14 23:15:43 7122 5

原创 【C++】vector数组的不确定输入

  相信大家在做许多OJ题目时,遇到往vector数组中输入不确定行和列的数组,那么该如何处理呢?1、一维数组的不确定输入  这里我们通过cin.get(),这个函数来进行判断,判断输入的是否为回车(也就是换行符),如果输入的是回车,就循环结束,停止输入。int main(){ vector<int> arr; int n=0; while(cin>>n) { arr.push_back(n); if(cin.get

2020-12-11 22:19:35 3461 1

原创 【C语言】 指针超详细解答

  在我们初学C语言的时候,大多数同学在学到指针这一部分的时候就大呼头疼…确实在C语言中指针是难点也是重点,所以在这里我们给大家梳理一下指针的详细知识点和雷区,让大家不在惧怕指针。一、什么是指针?  要知道什么是指针,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。下面我们先看一串代码:#include <stdio.h>int main(){ int a = 10;//在内存中开辟一块空

2020-12-11 22:19:19 275

原创 【C语言】 整型提升和整型溢出

首先什么是整型溢出?对于整型溢出,分为无符号整型溢出和有符号整型溢出。对于unsigned整型溢出,C语言的定义是——“溢出后的数会以2^(8*sizeof(type))作模运算”,也就是说,如果一个unsigned char(1字符,8bits)溢出了,会把溢出的值与256求模。例如:unsigned char x = 0xff; printf("%d\n", ++x);上面的代码会输出:0 (因为0xff + 1是256,与2^8求模后就是0)对于signed整型的溢出,C的规范定义是“und

2020-12-11 22:18:53 420

原创 【C++】vector中erase用法

  在vector数组中我们删除数组经常用的就是erase方法,但是earse的用法一不注意就会出错,今天我就遇到了,所以在这里总结一下,避免大家用错。1、首先介绍一下erase函数的原型:iteratorerase(iterator position);iteratorerase(iterator first, iterator last);我们可以看到erase函数有两种函数原型,一种是给定要删除的位置,另一种是给定删除的区域。2、接下来给出一种常见的错误for(auto iter=vec.

2020-12-11 22:18:43 66903 13

空空如也

空空如也

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

TA关注的人

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