自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 C/C++ 二进制转十进制

二进制转十进制1 代码1 代码int getDecimalValue2(vector<int>& binary) { int ans = 0; for(int i = 0; i < binary.sizze(); ++i) { ans = (ans<<1) + binary[i]; } return ans;}思路:把整个二进制串想成两部分,当前处理的这1位。前面一个整体。当然没处理的串不算哈当然,移进一位,前面的整体*2,相当于前面

2021-01-28 17:32:29 2168

原创 C/C++ 二维数组第一列升序,第一列相同第二列降序

二维数组排序数组排序有内置API,一般是一维的,这里分享下二维或者多维的用法1 C++ 二维数组第一列升序,第一列相同第二列降序2 C 二维数组第一列升序,第一列相同第二列降序3 更一般的思路数组排序有内置API,一般是一维的,这里分享下二维或者多维的用法下面先分享下C++的情况,C++有好几个排序API,其内部实现一般是快排,包括稳定、不稳定、部分排序等。1 C++ 二维数组第一列升序,第一列相同第二列降序这里使用sort来完成,默认是升序,不管是一维,二维,多维,没有第三个参数都是按第一列升序排

2021-01-22 14:43:11 2721 1

原创 C++ 二维vector的push_back和遍历的简单形式

二维vector1 二维vector2 遍历输出1 二维vector定义一个二维vector,怎么给它加入数据呢?其实绕个弯。vector<vector<int>> res;首先我们需要先建立一个一维的vector,紧接着push_back for (int i = 0; i < N; ++i) { vector<int> temp; for (int j = 0; j < M; ++j) { tmp.p

2021-01-16 20:39:37 6967 1

原创 leetcode 二叉树的建立、释放内存、层序遍历输出,C++

二叉树的建立、释放内存、层序遍历输出leetcode的输入案例其实是数组存储方式,这样建树很方便1 数组存储建树2 二叉树释放内存3 二叉树遍历4 测试案例leetcode的输入案例其实是数组存储方式,这样建树很方便对于上面这个案例,你可以发现,输入其实层序遍历存储在数组,这样的结果是很好建树,利用二叉树在数组中的相对关系,如下图数据结构定义:// Definition for a TreeNode.struct TreeNode { int val; TreeNode *le

2021-01-16 19:19:36 888

原创 leetcode 234. 回文链表 C++

回文链表解法有两种最基本的方式,空间复杂度O(n)--递归方式,空间复杂度O(1)--找中点、反序后半部分链表、比较即可。1 递归方式2 找中点、反序后半部分链表、比较即可解法有两种最基本的方式,空间复杂度O(n)–递归方式,空间复杂度O(1)–找中点、反序后半部分链表、比较即可。1 递归方式最核心基础的数据类型是数组,链表。进而组成栈、队、堆、树、图等。从链表定义来看就注定它具有递归的特点,递归是浓墨重彩的一部分。void traverse(ListNode *head){ //前序遍历

2021-01-14 14:39:08 158

原创 C/C++矩阵翻折与旋转

矩阵翻折与旋转二维数组就地操作,n*n2 矩阵水平翻折3 矩阵左右翻折4 矩阵主对角线翻折5 矩阵副对角线翻折7 矩阵顺时针旋转90度8 矩阵逆时针旋转90度9 自己画一个矩阵,按结论套下就懂了二维数组就地操作,n*n2 矩阵水平翻折规律:行和是n-1,行减半;列不变 for (int i = 0; i < n/2; ++i) { for (int j = 0; j < n; ++j) { swap(&matrix[i][j], &a

2021-01-08 17:01:01 1745

原创 C/C++二维数组分块遍历

二维数组分块遍历1 二维数组分块遍历2 简单的按行遍历,按列遍历3 分块遍历3.1 除法,求余的物理意义3.2 何为遍历?3.3 确定数组行下标3.3 确定数组列下标3.3 完整代码3.4 技巧1 二维数组分块遍历对于二维数组,默认是行遍历的(这种场景最常见),有时候也需要按列遍历,还有些时候需要按分块矩阵顺序遍历。遍历:简单地讲,将每个元素有且仅有执行一次。分块遍历,如9*9的矩阵,每3*3一块,这样划分下来只有9个大矩阵,9个大矩阵是按行遍历的。目标:按照图中所示的数字顺序遍历。2 简单的

2021-01-08 10:45:19 1631 2

原创 C/C++各种类型说明符占用存储空间,如int、long、double占用的字节数

类型说明符占用存储空间对于特定位数的机器,类型说明符占用的大小一致,下面用的C++,没有写C代码1 我的是64位机器,至于32位机器是怎么样,可以用32位机器试下2 解释3 second.cpp对于特定位数的机器,类型说明符占用的大小一致,下面用的C++,没有写C代码1 我的是64位机器,至于32位机器是怎么样,可以用32位机器试下还是看下代码吧,不然无法理解,比如,时不时有人会提到32767,又有人说int占用4字节,甚至把两者等同起来,这是错误的。结论是:32767的时代已经过时了,还是要仔细分

2021-01-07 11:10:08 1875

原创 C/C++如何忽略定义了但是未使用的变量

忽略定义了但是未使用的变量1 GCC编译中警告不等于错误,但有些警告所有编译器都认为是错误2 一个案例3 忽略定义了但是未使用的变量1 GCC编译中警告不等于错误,但有些警告所有编译器都认为是错误下面提及几点,明明定义了返回值,但是不返回形参、实参类型不匹配,无法进行隐式转换编译器最初会给出警告,至于是不是错误,我认为有两点主要原因编译器厂商共同约定的,某些警告就是错误程序员可以附加其他错误项,比如你就认为某个警告就是错误啦至于我们需不需要将所有的警告全部消灭,看个人和项目要求,但是

2021-01-06 15:25:15 3517 1

原创 C语言调用shell命令及获得环境变量的内容

调用shell命令,获得环境变量的内容C语言是靠底层的高级语言,和系统有关的操作都提供一些API1 执行shell命令system2 获得环境变量的内容C语言是靠底层的高级语言,和系统有关的操作都提供一些API1 执行shell命令system将字符串传递给执行环境,其结果与具体实现有关,比如,Linux下想执行ls命令,system("ls"); // 执行命令再比如,windows下,我们经常遇到这样的代码system("p

2021-01-06 14:52:08 711

原创 C语言如何使用时间time

时间time1 头文件1 头文件<time.h>,获取当前本地时间C语言给我们提供了时间,对于一般的任务是足够。下面最要程度依次降低。获取本地时间,十分简单,就两个函数,如下。 time_t t = time(0); printf("%s\n", ctime(&t)); // 输出当前时间,注意,已经localtime了 //output Wed Jan 6 10:38:18 2021下面介绍下这两个函数。tim

2021-01-06 14:29:50 2277

原创 C/C++中大小端判断

大小端判断1 什么是大端、小端?2 两种简单的方式判别大小端2.1 使用union的特性2.2 强转成char*3 指针的强大1 什么是大端、小端?整数的表示作为计算机入门的第一步,在计算机内部用0、1表示,存储顺序有两种,分别是小端、大端小端序(little-endian)是指将表示整数的低位字节存储在内存地址的低位,高位字节存储在内存地址的高位。相反大端序(big-endian)低字节存储在内存的高位。一个例子下标是一个内存地址,从0x100开始的哈2 两种简单的方式判别大小端2.1

2021-01-05 19:15:19 1333

原创 C/C++使用异或交换元素及固有的缺点

异或交换元素1 如何使用异或来交换元素2 扩展,一组数,只有一个数出现一次,其他数出现两次,求出现一次的这个数?3 一组数,只有一个数出现一次,其他数出现三次,求出现一次的这个数?1 如何使用异或来交换元素代码如下/** \brief swap 异或交换两元素 * \author xxx * \copyright GNU Public License * \version 1.0 * \date 2020-1-4 * * \param[

2021-01-04 21:25:23 454

原创 如何理解C/C++语言的优先级,需要背吗?

C语言优先级1 如何理解C语言优先级,需要背下来吗?2 记住最高优先级的四个3 ++ -- 属于第一还是第二梯队4 * & 属于第二梯队5 几个案例6 总结7 C++在四大最高优先级上还有一个作用域解析符::1 如何理解C语言优先级,需要背下来吗?很多初学者都是在背C语言优先级顺序表和结合型方式(左结合or右结合),其实不需要,如何就背下来的话,那么把++、.、->、[]这些混在一起,这时继续背?还是必须解决这个问题?看似表的内容很多,其实你只需要记住一点就好了,下面我和大家分享下。2

2021-01-04 19:29:25 779

原创 C语言中static的理解

static的理解1 如何理解static?2 加上static改变了什么?2.1 static的存储类型解释3 加上static后带来了什么优点?4 总结1 如何理解static?static在很多的地方都能看见。那么怎么准确把握它含义呢?其实我把这个问题分成两个点, 1. 加上static改变了什么?2. 加上static后带来了什么优点?2 加上static改变了什么?最容易理解的答案是:将变量私有化,即具有内部连接属性由于static作用变量的作用域不同,所有static变量细分几种

2021-01-04 16:33:48 1665

GCC 中文手册.pdf

gcc中文翻译手册和 英文源于https://gcc.gnu.org/onlinedocs/

2020-10-15

空空如也

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

TA关注的人

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