- 博客(39)
- 收藏
- 关注
原创 【C++11】右值引用和左值引用
① 自定义支持->重写构造函数,一般是直接有的可以直接 调用② 容器->C++11引入initializer_list,初始化列表,底层逻辑是迭代器加push_back支持。public:// ...//这里跟迭代器加尾插的思想一样private:T* _array;
2024-05-21 17:39:03 407
原创 刷力扣看见一个寻找单身狗的问题?【力扣题解】
今天刷力扣遇到一道有意思的题目,题目是写着撞色问题177 ,当我写完这个题去看看有什么好的解题方式的时候,看见一个有趣的题解问题,他对这个题目的描述是几对情侣,带几个单身狗出去玩,然后现在我们要把这几个单身狗找出来,看了这个博主的题解,觉得太有意思了,然后今天把这个题写出来分享给大家。给的是一个接口型,我们只需要把函数实现就行,下面是我分别用C语言和C++实现的两种解题方法,
2024-03-20 22:04:36 142
原创 浮点型数据在内存中到底是怎么存储的呀?【数据存储】
根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式:(-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。M表示有效数字,大于等于1,小于2。2^E表示指数位。简单来说:S表示正负浮点数,E代表指数,M代表浮点数的有效值(注意E、M)的表示遵循一种类似于科学计算法的表示方法。
2024-03-19 21:59:21 803
原创 烫烫烫VS屯屯屯,为什么我们再编程中会遇到一些奇怪的中文汉字呢?【函数的栈帧】
当我们上网查询的时候,我们会发现网上用了一句简单的话来概括:在VC 的debug模式下,,这时打印出来分别对应烫和屯,我们来下面一个代码来验证一下这个现象。
2024-03-19 08:02:18 325 1
原创 Xshell中vim插入模式中没有正常退出,再次进入会报错,怎么解决?
Swap file ".test.c.swp" already exists![O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:
2023-10-18 16:22:46 289 1
原创 C++模版进阶
这里博客主要是对于前面模版初阶的补充知识,介绍一些其他特殊的用法。到这里了,我们C++初阶的知识基本介绍完完了,基本语法的介绍和实现,让我们对C++的底层原理更加清晰明了,咱们继续进入更加深入的C++学习吧。
2023-09-17 13:32:56 34
原创 C++之stack和queue的实现
我们今天要介绍的是适配器和stack和queue,观察前面讲的STL,我们发现stack和queue里面有很多函数与stack和queue有许多相似之处,这里就不介绍用法啦,咱们直接看底层实现原理。
2023-09-07 22:48:42 110
原创 C++入门篇之模版初始篇
我们用栈来写一个类的模版吧。int top;int main()//定义一个存储char类型的栈//定义一个存储int类型的栈//定义一个存储double类型的栈return 0;注意点:1.类模板只是一个模板,他并不属于类2.对类模版的成员函数进行定义时,需要加上模版参数列表。//需要在void后面加上Stack
2023-08-26 10:40:52 93 4
原创 C++类与对象进阶篇
构造函数特性: 我们试着写一写日期类的构造函数。 我们这里分别调用无参的构造函数和半缺省的重载构造函数 说好的自动生成构造函数呢,好像并且进行初始化呢?结果好像并不是想象中的那样,其实并不是编译器没有处理,只是这是C++的一个小缺陷,它初始化成员属性时用的值刚好也是基础类型变量没初始化时编译器给其赋的值,所以我们才看到如上效果.但是其构造函数会对自定义类型进行一定处理,什么处理呢?那就是通过自身的构造函数去调用自定义类型的构造函数.看下面的代码,在定义自定义类person。 在data的
2023-08-25 22:34:53 82 1
原创 C++入门篇之内存管理
new的原理1.调用函数申请空间2.在申请的空间上执行构造函数,完成对象的构造delete的原理1.在空间上执行析构函数,完成对象中资源的清理工作2.调用函数释放对象的空间new T[N]的原理1.调用函数,在中实际调用函数完成N个对象空间的申请2.在申请的空间上执行N次构造函数delete[]的原理1.在释放的对象空间上执行N次析构函数,完成N个对象中资源的清理2.调用释放空间,实际在中调用来释放空间。
2023-08-25 07:40:30 78 2
原创 C++类与对象初始篇
学到这里,我在思考一个问题,C语言和C++有什么区别,C++的语法看着相比较C语言来说比较复杂,引入了很多新的概念,但是在之前的知识里面,学到的输入输出、引用、缺省参数、函数重载等等,并没有实际看到C++的强大之处,那么本章就会进入C++语法的核心基础,类和对象。简单来说,C语言通过一些函数调用来解决问题,比如判断一个素数,实现一个顺序表来存储数据呀,这些都是对每一个对象的过程批量操作,重点在于过程,C++面向对象就是,基于对象,由对象之间的交互来完成。class Data//类体成员函数和变量。
2023-08-23 10:30:11 116 2
原创 C++基础+引用
先正经说说其定义,引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它 引用的变量共用同一块内存空间。其实就是取一个绰号,咱们都学语言这么久了,给一些变量取一些好听的名字没有什么问题吧,隔壁老王(暗指给看这篇文章的你起的别名)。5.2引用的特性1.引用定义时必须初始化(要不然你给谁起绰号呀????2.一个变量可以有多个引用(名声太好啦,多来几个好的称呼也是可以的,毕竟我这么牛逼对叭)3.引用一旦引用一个实体,再不能引用其他实体。(要专一都共用一块内存空间了。
2023-08-22 09:29:48 73 2
原创 消失的数字【力扣】
解法二新建一个变量x,先让x与0到n之间的数异或,在遍历一下数组与数组中的元素异或,就可以找到缺失的数,原理任何一个数与0异或两次得到的都是他本身0,异或一次得到与它异或一次的元素。的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?解法一先从0到n把所有的数加起来,遍历数组减去数组中的元素,就可以找到缺失的数。......
2022-07-19 19:26:12 78 1
原创 原地移除数组中的元素【力扣】
利用双指针来控制数组中的元素,同时建一个循坏来删除与val相等的元素。最后返回dst指针即可。原地移除数组中所有的元素。
2022-07-19 18:35:36 156
原创 学c语言之前具备的知识涵养
1.选择一款适合你的编译器,建议使用vs2015以上的版本,功能比较强大(vc++比较老,有的存在不兼容的问题,和现在一些流行的编译器存在一定的差距)。2.学会在编译器上建立一个编译环境,具体步骤课参考其他博主的方法,大概就是新建—空项目—源文件—头文件创建一个.c文件,就搭建好编译环境了。...
2022-06-18 20:32:10 176
原创 查看亮灯问题
1.题目:2.一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。注:电灯数和学生数一致。2.解题
2022-04-07 20:45:19 107
原创 股神涨跌求剩余股票价格
假设买入1元股票,股票的变化规律是第一天不变(0),第二天涨1元(1),第三天跌1元,第四天涨1元(1),第五天涨1元(1),第六天跌1元,第七天涨1元(1),第八天涨1元(1),第九天涨1元(1),第十天跌1元...求N天后的股票剩余价格。1.解题思路:主要是利用循环,还有跌的天数比较规律,所以我们只要统计跌的天数就可以了,而每个跌的天数非常规律,我们就可以把跌看成涨,然后减去2倍跌就好了,然后我们就惊奇发现这个题非常简单。只用统计跌了多少。2.代码#include<stdio.h
2022-04-07 20:35:35 226
原创 c#中对数组的理解(详解)
一、一维数组1.数组的定义方式基本定义(1)整形数组 int [] +数组名 eg:int [] myarr(2)双精度数组 double []+数组名 eg:double [] b //双精度数组b(3)字符串数组 string []+数组名 eg: string [] c //字符串数组c注意;创建的只是数组的定义还要对数组进行初始化,初始化分为静态和动态初始化先来说说动态初始化吧你要new一个,比如;你没有女朋友,你得自己去new一个,具体的方法是int [] myarr=
2022-04-03 15:03:43 2373
原创 换行输出字符串的单词
1.解题思路:遇到' '字符就输出\n;同时还需要构建一个循环2.代码如下:#include <stdio.h>#include <stdlib.h>int main() { char s[100]; gets(s); int a = 0; for (int i = 0; s[i] != '\0'; ++i) { if (s[i] != ' ') { printf("%c",s[i]); a = 1; if (s
2022-04-01 17:54:26 367
原创 输入某年某月某日,判断这一天是这一年的第几天?
1.原理:需要判断一个问题就是判断是不是闰年,其实加起来还是超级简单,没有什么难度2.代码如下#include<stdio.h>int main(){ int y,m,d,i=0,sum=0; int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; scanf("%d%d%d", &y,&m,&d); while(i<m-1) { sum += a[i]; i++; } sum +
2022-04-01 14:25:20 331
原创 实现 itoa 函数的功能
1.先讲思路:将整形转化为字符串,原则上就是数字分离,将每一个数字分离然后2.代码#include <stdio.h>//atoi 函数:将s转换为整形数void itoa(int n, char s[]){ int i, j, sign; if ((sign = n) < 0) n = -n; i = 0; do { s[i++] = n % 10 + '0'; } while ((n /= 10) &g...
2022-04-01 13:49:52 563
原创 c语言中比较两个数的大小不用if条件语句和大于小于,用逻辑运算符来进行比较
1.基础知识也就是原理:其实算一个脑筋急转弯吧。就像高中数学题经常构建一个a-(a-b)*c,如果c=1那么就是b,如果是0,就是a,一看见1和0,我们就想到了二进制,那么0和1就可以通过移位来实现。0和1可以看最高位的,最高位是符号位,又可以通过相减得到一个数,来判断正负。2.原理:两个数相减得到一个正负数,通过最高位的符号位来判断正负。3.代码如下:#include<stdio.h>int main(){ int a, b, c,d=0; scanf(...
2022-03-29 19:38:19 3702 3
原创 c语言中将一个十进制数转化为二进制(不论正负),并输出1的个数
1.涉及到的知识其实就是逻辑运算符,每个数与(它的-1)进行&操作再赋值给该数,每执行一次,该数二进制最右边的1就会丢掉,只要知道一个数变成0之前进行了多少次操作就可知道二进制有几个1了。2.思路:用循环进行判定,看m=m&(m-1)如果是则++;3.代码如下#include<stdio.h>int main(){ int i, j=0; scanf("%d",&i); while (i) { i = i &...
2022-03-29 18:18:32 1248
原创 如何使用vs2019编程c语言
使用vs2019编程c语言1、安装vs2019并打开。2、点击空项目。3、创建文件位置。4、创建源文件。5、.c文件5、写代码。
2021-11-06 00:10:31 404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人