C语言中关于动态内存分配的详解

2021-09-15
目录 一.malloc 与free函数 二.calloc 三.realloc 四.常见的动态内存的错误 [C语言]动态内存分配 本期,我们将讲解malloc.calloc.realloc以及free函数. 这是个动态内存分配函数的头文件都是 <stdlib.h>. c语言中动态分配内存的函数,可能有些初学c语言的人不免要问了:我们为什么要通过函数来实现动态分配内存呢? 首先让我们熟悉一下计算机的内存吧!在计算机的系统中大致有这四个内存区域: 1)栈:在栈里面储存一些我们定义的局部变量以及形参(

C++的命名空间详解

2021-09-15
目录 C++ | C++命名空间 C++命名空间 定义命名空间 实例1: using 指令 实例2: 实例3: 不连续的命名空间 嵌套的命名空间 实例4: 实例5: 笔记: 实例6: 实例7: 总结 C++ | C++命名空间 C++命名空间 一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突. 当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突. 例如小李和小韩都参与了一个文件管理系统的开发,它们都定义了一个全局变量

Python使用bar绘制堆积/带误差棒柱形图的实现

2021-09-15
本博文源于<python数据可视化>(黑马程序员编著).先讲解bar参数如何使用,然后分别演示堆积柱形图和带误差柱形图画法. bar参数 bar(x,height,width=0.8,bottom=None,align='center',data=None, tick_label=None,xerr=None,yerr=None,error_kw=None,**kwargs) 该函数常用参数如下: x 表示x的坐标值 height:表示柱形的高度 width:表示柱形的宽度,默认为0.8 bo

C++中map 字典的基本使用教程

2021-09-15
目录 前言 1.map 类型的声明 2.pair 类型 3.map 数据的遍历 1)直接遍历: 2)使用迭代器遍历 4.添加元素 5.删除元素 1.dict.erase(key) 2.dict.erase(p) 3.dict.erase(b, e) 6.访问元素 7.其他细节 总结 前言 在 C++ 中,map 是关联容器的一种,关联容器将值与键关联到一起,并使用键来查找值.这与 python 中的字典类型类似,也是用来存储键-值对(key-value) 形式的数据的,其同样具有遍历.插入.查询

ASP.NET Core Web API 教程Project Configuration

2021-09-15
目录 1. 创建新项目 2. launchSettings.json 文件 3. Program.cs 和 Startup.cs 4. 扩展方法和 CORS 配置 5. IIS 配置 6. Startup 类中的其它代码 7. 基于环境的设置 前言: 本系列文章主要参考了<Ultimate ASP.NET Core 3 Web API>一书,对原文进行了翻译,同时适当删减.修改了一部分内容. 对于某些概念和原理,原书和本文中都没有进行详细描述,如果一一详细介绍,内容就显得臃肿且混乱,我个人是先

Java数据机构中关于并查集的详解

2021-09-15
目录 概念 实现 初始化并查集 判断是不是同一个组 查找当前节点的代表节点 合并操作 本期文章源码:GitHub 一文彻底搞懂<并查集>! 概念 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并.查).比如说,我们可以用并查集来判断一个森林中有几棵树.某个节点是否属于某棵树等. 具体的用法,我们会以下一篇文章<图的相关算法>中,有一个克鲁斯卡尔算法,用于生成最小生成树,会用到并查集. 并查集的主要作用是求连通分支数(如果一个图中所有点都存在可达关系(直

JavaScript循环遍历的24个方法,你都知道吗

2021-09-15
目录 前言 一.数组遍历方法 1. forEach() 2. map() 3. for of 4. filter() 5. some().every() 6. reduce().reduceRight() 7. find().findIndex() 8. keys().values().entries() 二.对象遍历方法 1. for in 2. Object.keys().Object.values().Object.entries() 3. Object.getOwnPropertyNam

浅谈为什么单线程的redis那么快

2021-09-15
目录 redis单机QPS 为什么这么快 内存型数据库 简单的数据结构 单线程 IO多路复用 总结 redis单机QPS ./redis-benchmark -t set,lpush -n 100000 -q SET: 82101.80 requests per second LPUSH: 82440.23 requests per second 在自己的电脑上测试SET和LPUSH10万次,可以发现每秒SET和LPUSH大概在8w多,接近官方说的单机10w qps的写. 为什么这么快 内存型数

通俗易懂讲解C语言与Java中二叉树的三种非递归遍历方式

2021-09-15
详解二叉树的三种非递归遍历方式(附C.java源码) 前言 二叉树的递归遍历方式很简单,三种递归遍历方式的区别,只是printf放的位置不一样而已,这里就不多讲了.把前序遍历代码贴在这里: //结点 struct Node { int val; struct Node* left, * right; }; //前序遍历 void pre(Node* root) { if (root == null) return; printf("%d ",root->val); pre(roo

unity shader 较完整光照(含有多光源阴影)

2021-09-15
Unity Shader是着色器,将纹理.网格信息输入,得到材质的一段程序,具体是个什么东西,还需要亲自实践才知道. 效果图: shader被附给了球. 灯光需要在属性面板开启阴影. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Unlit/lightFull" { Properties { _MainTex ("Texture",

中秋快到了利用python画出月亮和月饼

2021-09-15
目录 一.

maven配置本地仓库的方法步骤

2021-09-15
目录 1.下载apache-maven-3.6.3-bin.zip 2.配置环境变量 3.测试 4.配置本地仓库 5.输入命令 本文主要介绍了maven配置本地仓库,分享给大家,具体如下: 官网http://maven.apache.org/download.cgi 1.下载apache-maven-3.6.3-bin.zip 然后解压放在本地盘(我放在了C盘,重命名为maven).然后再新建一个文件夹,命名为:maven-repository,作为本地仓库. 2.配置环境变量 在系统属性-环境

BAT批处理提取系统时间的实现代码(bug修复)

2021-09-15
一般情况下用下面的代码即可,但批处理的默认0开头的数字以为是8进制,导致获取的时间不准确 for /f "tokens=1,2 delims=:" %%i in ('time/t') do ( set/a xiaos=%%i set/a fenz=%%j ) 使用上面的代码提取系统的小时和分钟,原本运行的结果如下: xiaos=9 fenz=18 但今天提取的却是下面格式(同一台机器,同一个系统): xiaos=09 fenz=18 由此带来后期计算的错误. 因为接触批处理不久,不知是

Redis数据过期策略的实现详解

2021-09-15
目录 一.设置过期时间 1.常用方式 2.字符串独有方式 二.3种过期策略 三.Redis采用的过期策略 四.RDB对过期key的处理 五.AOF对过期key的处理 本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了 Redis会自己回收清理不用的数据吗?如果能,那如何配置?如果不能,如何

Spring security如何重写Filter实现json登录

2021-09-15
Spring security 重写Filter实现json登录 在使用SpringSecurity中,大伙都知道默认的登录数据是通过key/value的形式来传递的,默认情况下不支持JSON格式的登录数据,如果有这种需求,就需要自己来解决,本文主要解决此问题: JSON登录 上面演示的是一种原始的登录方案,如果想将用户名密码通过JSON的方式进行传递,则需要自定义相关过滤器,通过分析源码我们发现,默认的用户名密码提取在UsernamePasswordAuthenticationFilter过滤

DataGrip 格式化SQL的实现方法(自定义Sql格式化)

2021-09-15
工欲善其事,必先利其器.好的工具可以使使用者心情舒畅,效率加倍.DataGrip 是 JetBrains 发布的多引擎数据库环境,支持 MySQL 和 PostgreSQL,Microsoft SQL Server 和 Oracle,Sybase,DB2,SQLite,还有 HyperSQL,Apache Derby 和 H2. DataGrip与IntelliJ IDEA同属JetBrains家族,界面风格熟悉,快捷键也大致通用,相信大家很快就能适应.DataGrip格式化Sql快捷键:Ctr

C语言编程数据结构的栈和队列

2021-09-15
目录 栈 数组实现 标题全部代码 Stack_array.c Stack_array.h 初始化数组栈 满栈后扩容 是否为空栈 压栈和退栈 链表实现 stack_chain.h stack_chain.c 整个压栈流程 整个弹栈流程 出栈情况 队列 队列的实现 queue_chain.h queue_chain.c 一个结构体类型用于维护这个队列 概念流程图 入队列的实现 出队列的实现 是否空队 栈 栈是一种以后进先出为顺序对对象进行添加或删除的数据结构 对栈进行形象记忆就像是桌子上的一堆书或一

Java 模拟真正的并发请求详情

2021-09-15
java中模拟并发请求,自然是很方便的,只要多开几个线程,发起请求就好了.但是,这种请求,一般会存在启动的先后顺序了,算不得真正的同时并发! 怎么样才能做到真正的同时并发呢? 是本文想说的点,java中提供了闭锁 CountDownLatch, 刚好就用来做这种事就最合适了. 只需要: 开启n个线程,加一个闭锁,开启所有线程: 待所有线程都准备好后,按下开启按钮,就可以真正的发起并发请求了. package com.test; import java.io.BufferedReader; imp

spring boot实现在request里解密参数返回

2021-09-15
目录 spring boot在request里解密参数返回 前言 代码块 最后 Spring boot配置Aop获取controller里的request中的参数及其返回值 首先在你的Maven的pom文件里加入aop的依赖 下面为我所有被请求到的controller加上Aop的功能 spring boot在request里解密参数返回 前言 有个业务需求,一个请求来源web,一个请求来源APP,web需求验证签名,APP的参数是经过加密,所以出现了两个Controller,除了解密获取参数方式

关于@PostConstruct、afterPropertiesSet和init-method的执行顺序

2021-09-15
目录 @PostConstruct.init-method.afterPropertiesSet() 执行顺序 @PostConstruct 标注的方法在何时被谁调用 init-method.afterPropertiesSet() 的调用 顺序的确定 @PostConstruct.init-method.afterPropertiesSet() 执行顺序 想要知道 @PostConstruct.init-method.afterPropertiesSet() 的执行顺序,只要搞明白它们各自在什