自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【科普】ARM架构

2022-06-30 15:34:03 11314 1

原创 【科普】电子类产品生态链

2022-06-20 10:23:42 480

原创 【Linux内核驱动】驱动的静态加载和驱动的动态加载

2022-05-28 07:10:16 577

原创 map的内存释放

map在erase和clear后是否会马上释放内存参考链接:关于c++中map的内存占用问题  (原文)原文提到map在erase和clear后不会立马释放内存,而是采用类似内存池的机制,对申请的内存进行”预留“,在一段时间内不使用才会予以“释放”。  (在编译器MSVC1930的实际测试中)大内存空间在erase和clear后会立马释放  (猜测)小内存空间在erase和clear后会被内存池回收delete+erase:编译器M

2022-05-08 16:26:04 4164

原创 visual studio 如何在单个项目中指定运行某个main函数源文件

visual studio 如何在单个项目中指定运行某个main函数源文件

2022-05-08 09:17:58 2306

原创 【MYSQL】聚集索引和非聚集索引

B树相关概念B树属于多叉树又名平衡多路查找树(查找路径不只两个)数据库索引技术里大量使用者B树和B+树的数据结构,原因如下:加快存储过程 ,mysql表中的数据和索引存储在磁盘这种外围设备中。但是和内存相比,从磁盘中读取数据的速度会慢上百倍千倍甚至万倍,所以,我们应当尽量减少从磁盘中读取数据的次数,采用B树查询的最坏时间复杂度为B的树高。一次尽可能读取更多的数据,磁盘存储 和查询的最小单位为块(每个块的大小为4K),如果我们能把尽量多的关键字放进磁盘块中,一次磁盘读取操作就会读取更多关键字而且也

2021-03-25 23:56:06 115

原创 【C++の相关概念】静态数组[]和动态数组new的区别

使用sizeof运算int a[5]; sizeof(a)=20;sizeof(*a)=4;//因为整个数组共占20字节//首个元素(int型)占4字节。int *a=new int[4];sizeof(a)=sizeof(*a)=4//因为地址位数为4字节//int型也占4字节。作为函数形参存储和运行方式参考:C++ 静态数组([])和动态数组(new)的区别...

2021-03-16 14:08:59 254

原创 【计算机原理】大端序与小端序

大端序和小端序字节存储顺序主要分为大端序(Big-endian)和小端序(Little-endian),区别如下Big-endian:高位字节存入低地址,低位字节存入高地址Little-endian:低位字节存入低地址,高位字节存入高地址大端序和小端序的使用场景x86系列CPU都是Little-endian字节序;PowerPC通常是Big-endian字节序;网络协议都是Big-endian字节序;大端序和小端序的转换一般我们的主机采用的都是小端序,而网络协议采用大端序,所以在主机

2021-03-15 12:57:17 767

原创 【C++の相关概念】<stdarg.h>

<stdarg.h>主要用于参数个数未知(即参数个数可变)时获取函数中的参数。va_list类型,typedef char *va_list;_INTSIZEOF(n)变量,#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )//保证字节数为int的整数倍va_start宏,获取可变参数列表的第一个参数的地址(list是类型为va_list的指针,param1是可变参数最左边

2021-03-14 13:36:26 195

转载 【Linux基本操作】gcc编译时头文件和库文件的搜索路径

一、头文件gcc 在编译时寻找所需要的头文件 :※搜寻会从-I开始※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH※再找内定目录/usr/include/usr/local/include/usr/lib/gcc-lib/i386-linux/2.95.2/include/usr/lib/gcc-lib/i386-linux/2.95.2/include/g+±3/usr/lib/gcc-lib/i386-li

2021-03-11 18:01:50 424

转载 【MYSQL】GROUP BY用法

先来看下表1,表名为test:表1执行如下SQL语句:SELECT` `name` `FROM` `test``GROUP` `BY` `name你应该很容易知道运行的结果,没错,就是下表2:表2可是为了能够更好的理解**“group by”多个列“和”聚合函数“**的应用,我建议在思考的过程中,由表1到表2的过程中,增加一个虚构的中间表:虚拟表3。下面说说如何来思考上面SQL语句执行情况:1.FROM test:该句执行后,应该结果和表1一样,就是原来的表。2.FROM test G

2021-03-11 16:03:52 202

原创 【算法与数据结构 の 代码实战】快速幂

剑指offer 16.数值的整数次方https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/solution/jian-dan-li-jie-kuai-su-mi-by-ollieq-rl74/分析class Solution {public: double myPow(double x, int n) { if(x == 0) return 0; if(x == 1) retu

2021-03-02 19:15:36 72

原创 【算法与数据结构 の 代码实战】原地置换算法排序

Q: 在一个具有n个元素大小的数组中,所有元素排序在0~n-1范围内并且所有元素不重复,对数组中的元素进行排序。A: 此时使用原地置换算法,时间复杂度O(N),空间复杂度O(1),明显优于其他的排序算法剑指offer 03.数组中重复的数字分析//将我们指针对应的元素放到属于他的位置(索引对应的地方)。我们可以这样理解,每个人都有自己的位置,//我们需要和别人调换回到属于自己的位置,调换之后,如果发现我们的位置上有人了,则返回。class Solution {public: int

2021-03-01 19:20:07 221

原创 【Linux基本操作】centos vimplus安装

python3.9.1安装安装依赖$ yum -y install openssl-devel \ bzip2-devel expat-devel \ gdbm-devel readline-devel zlib-devel下载安装包$ wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz$ tar -zxvf Python-3.9.1.tgz$ cd Python-3.9.1/安装到/usr/local下$

2021-02-07 12:50:29 367

原创 【VM.war虚拟机】vmware设置共享文件夹

一、安装vmware-tools VMware tools出现“正在进行简易安装时,无法手动启动VMware tools安装”解决方法: https://blog.csdn.net/ldld1717/article/details/52770630 1、删除open-v...

2021-02-06 21:37:13 289

原创 【GIT】下载Github上的单个文件或目录

Github下的项目可能很大,里面有很多的子文件夹,我们可能只需要使用某个子目录下的资源,可以不用下载完整的repo就能使用。  例如,我想下载这个repo中的字典文件:https://github.com/starnightcyber/findSubDomains/tree/master/dict 安装svnsudo yum install -y subversion下载子目录点击进入我们要下载的dict,url地址为:https://github.com/starnightcyber/find

2021-02-05 22:22:51 643

转载 【Centos】yum出现Error downloading packages错误

yum出现Error downloading packages错误错误表现方式:yum可以list,可以clean cache,但是无法安装,错误提示:Downloading packages:Error downloading packages:libevent-devel-2.0.21-4.el7.x86_64: [Errno 5] [Errno 2] 没有那个文件或目录libevent-2.0.21-4.el7.x86_64: [Errno 5] [Errno 2] 没有那个文件或目录错

2021-02-05 11:22:13 843

原创 【C++の相关概念】重温前缀++与后缀++

前缀++与后缀++的本指区别是什么?int i = 0, n = 0;int test = ++i;//此时,test等于1,i也等于1test = n++;//此时,test等于0,n等于1因此,要说本质区别就是前缀加加返回自增后的自己,而后缀加加是返回自增前的值前缀++与后缀++的类成员函数重载是怎样的?Complex& operator++()//前缀++重载 返回的是引用Complex operator++(int)// 后缀++重载写法 (int) 区分前缀的必须写成

2021-02-03 22:46:55 698

原创 【算法与数据结构 の 代码实战】滑动窗口

滑动窗口法(尺取法):用来解决一些查找满足一定条件的连续区间的性质(长度等)的问题。思路:通过左右指针L和R构造一个滑动窗口,首先移动R使得滑动窗口使结果趋于目标,当超过目标范围时,再移动L使得结果回退趋向目标,如此循环往复,并在其过程中记录最优值替换后的最长重复子字符分析注释写的很好了。。。class Solution { public int characterReplacement(String s, int k) { int[] num = new

2021-02-02 21:39:04 213

原创 【STL】hashtable unordered(未完成)

hashtable源码实现G2.9版本的hashtable源码hashtable的buckets_vector的大小通常为质数,如果元素个数大于buckets_vector的大小时,需要采用rehashing,即需要扩充buckets_vector的大小,扩充为当前大小两倍附近的一个质数5个需要注意的模板参数:Key,Value,HashFcn,ExtractKey,EqualKeyKey就是Key,节点的大小关系是按Key排的;Value是整个node,而不是key对应的data;HashFc

2021-02-01 18:28:59 82

原创 【STL】rb_tree (multi)set (multi)map

rb_tree源码实现G2.9版本的rb_tree源码rb_tree底层实现红黑树,其示意图和代码如下:4个需要注意的模板参数:Key,Value,KeyOfValue,CompareKey就是Key,节点的大小关系是按Key排的;Value是整个node,而不是key对应的data,比如对于map来说,Value就是个pair;KeyOfValue代表如何从Value中提取出Key,也就是一个可调用对象的类型,传入一个Value,返回对应的Key;Compare就是比较Key的可调用对象的类型

2021-02-01 16:20:23 156

原创 【STL】容器适配器 queue和stack

queue源码实现stack源码实现stack和queuequeue和stack里面都内含一个sequence(底层容器),queue和stack都是通过调用sequence中的一部分功能来实现的queue和stack的默认sequence都是deque,list也可以满足queue和stack所有成员函数的要求,但stack可以选择vector作为底层结构,queue不可以选择vector作为底层结构,因为vector没有pop_front(),另外stack和queue都不可以选择set

2021-01-25 17:56:48 121

原创 【STL】deque

deque源码实现G2.9版本的deque源码deque对外呈现出的是一个双向数组,其示意图和代码如下:deque内部实际上是由一个个离散的内存段组成的,术语叫做buffer,这些buffer的头指针被保存在一个vector中,通过deque的迭代器的行为,就可以对外表现为一个连续的内存段(示意图中的map不是容器来的…不要搞混了)可以看出deque内部包含两个迭代器start和finish,分别指向头尾,除此之外还有一个map指向保存指向buffer的指针的内存段,以及一个表示map长度的

2021-01-25 17:41:42 124

原创 【STL】array(未完成)

array源码实现TR1版本的array源码array底层实现无法扩容的单向数组,其示意图和代码如下:没有构造和析构函数但要是用户申请的元素个数为0…vector则会默认提供1个元素的空间TR1版本的array源码注意右上角typedef对于数组的用法,这是理解array的成员_M_elems的类型的关键。forward_list源码实现...

2021-01-22 21:40:44 75

原创 【STL】vector

vector insertvector<int> vec{ 1,6,5,4,3,3,3,3,2 };auto it=vec.begin();while(it != vec.end()){ if(6 == *it){ vec.insert(it+1,4); } it++;}}传入指针it调用insert函数以后,it指向未知的空间,故再进行it++操作,会发生core dump,所以写成 it=vec.insert(it+1,4);vector 为什么没有pop_fro

2021-01-22 20:58:40 547

原创 【STL】iterator迭代器

STL中的iterator是关联algorithms和containers的纽带,algorithms想要通过iterator处理元素,即需要调用containers中的_constainer_iterator变量,但是_constainer_iterator变量却无法完整应答algorithm所需要的信息,例如_containers_iterator中的T为class类型或者non-class类型(例int),两种类型所提供的iterator_category以及其他信息各有千秋不能一概而论所以这时就

2021-01-22 17:56:15 61

原创 【STL】list

list为何不能使用::sort()进行排序template <class RandomAccessIterator>inline void sort(RandomAccessIterator first, RandomAccessIterator last){ if(first != last){ __introsort_loop(first, last, value_type(first), __lg(last - first) * 2); __f

2021-01-22 17:17:13 145

原创 【C++の相关概念】operator->重载

代码实例operator->重载不同于其他的重载运算符,接下来将用两个例子来说明:class A{ public: int i; A(){i = 100;} void print( int a){printf("%d/n", a);} A* operator->(){ return this;}};int main(){ int ret; A a; ret = a->i; a->print(200

2021-01-21 22:29:25 436

原创 【STL】容器总览(未完成)

总览未完成每个容器的用法 相同点与不同点

2021-01-21 21:35:53 62

原创 【STL】内存管理(未完成)

分配器malloc,free,new,delete申请内存操作要落在malloc()这个函数上,然后malloc()再去调用相应操作系统的API。释放内存操作要落在free()这个函数上,然后free()再去调用相应操作系统的API。malloc()申请的内存块类似上面这个样子(以VC6为例),可以看出有很多额外开销,尤其是内存块上面和下面的cookies,如果申请很多相同大小的内存块,就会有很多的cookies是多余的,造成了空间上的浪费。    ::operat

2021-01-21 20:12:01 61

转载 【STL】C++ STL 体系结构与内核分析源代码--侯捷

// author : Hou Jie (侯捷)// date : 2015/10/28 // compiler : DevC++ 5.11 (MinGW with GNU 4.9.9.2)//// 說明:這是侯捷 E-learning video "C++標準庫" 的實例程式.// 該課程的所有測試都出現在此.// 每一個小測試單元都被放進一個 namespace 中, // 如此保持各單元間最大的獨立性.// 每個 namespace 上方皆有該單元相應的 #include <..

2021-01-21 11:30:33 261

原创 【STL】STL概论

C++标准库 and C++标准模板库C++标准库包含了C++标准模板库参考网站:cplusplus:http://www.cplusplus.com/cppreference: http://en.cppreference.com/w/gcc:http://gcc.gnu.org/C++标准模板库在C++标准中,STL(Standard Template Library)由6大部件构成:容器(Container),分配器(Allocator),算法(Algorithm),迭代器(Itera

2021-01-21 11:25:30 82

转载 【C++の相关概念】typename关键字的使用方法和注意事项

typename关键字的使用方法和注意事项1, 什么地方使用?2, 模板中标明“内嵌依赖类型名”3,例外)1, 什么地方使用?用在模板定义里,标明其后的模板参数是类型参数。例如template<typename T, typename Y>T foo(const T& t, const Y& y){//…};templaceclass CTest{private:T t;public://…}其实,这里最常用的是使用关键字class,而且二者功能完

2021-01-20 20:21:04 113

原创 【C++の相关概念】指针数组 数组指针 二维数组传参

指针数组和数组指针指针数组:是指一个数组里面装着指针,也即指针数组是一个数组;int *a[10]; 数组指针:是指一个指向数组的指针,它其实还是一个指针,只不过是指向数组而已;int(*a)[10]; //a指向一个列数为10的二维数组区分方法:主要看后面的两个字是什么(前面是修饰作用),因此指针数组是数组,而数组指针是指针。二维数组传参形参为二维数组声明void function(int a[m][n]);//函数声明void function(int (&a)[m

2021-01-18 21:41:53 339

原创 【算法与数据结构 の 代码实战】贪心思想

分配饼干分析首先将饼干和小朋友按照从小到大进行排序,然后从小到大逐个考虑小朋友和饼干,判断当前的饼干能否满足小朋友如果不能则挑下一个饼干,直到小朋友或者饼干遍历结束以后,则停止遍历class Solution {public: int findContentChildren(vector<int>& g, vector<int>& s) { if(g.empty()==true || s.empty()==true) return 0

2021-01-18 11:22:13 140

转载 vimium 快捷键(常用)

按键功能?快捷键列表Esc退出 Vimiumo打开网页、 历史记录、书签O在新的标签页打开网页、 历史记录、书签b打开书签B在新的标签页打开书签ge编辑当前页面 URLgE编辑当前页面URL,在新的标签页h向左滚动l向右滚动j向下滚动k向上滚动gg滚动到页面顶部G滚动到页面底部d向下滚动一个页面 (相当于空格/pgup)u向上滚动一个页面 (相当于shift+空格/p...

2021-01-15 14:38:22 440 1

转载 chrome 快捷键(【官方最全】)

文章目录1. Windows and Linux标签和窗口快捷方式功能快捷方式地址栏快捷方式网页快捷方式鼠标快捷键2 Mac标签和窗口快捷方式功能快捷方式地址栏快捷方式网页快捷方式鼠标快捷键3 若有变动或更新1. Windows and Linux标签和窗口快捷方式ActionShortcut打开一个新窗口(常用)Ctrl + n在隐身模式下打开一个新窗口Ctrl + Shift + n

2021-01-15 14:29:03 414

原创 【计算机网络】考试复习┭┮﹏┭┮

概述比特率和波特率波特率:信号变化次数(每秒采样的次数)比特率:数据传输的速率,单位bps(每秒传送的比特数)若信号分两级,则波特率=比特率若信号分为V级,则比特率=log2V截止频率F=最大的谐波次数n*基频f(以n比特为一个单位发送时对应的频率)模拟传输和数字传输模拟传输:只关心信号的衰减和失真,不关心信号的内容数字传输:只关心信号的内容,减少信号因噪音干扰而传送错误信息长距离传输时,通常采用数字传输香农定理和奈奎斯特定理香农定理:在无噪声信道中,当带宽为H赫兹,信号

2020-12-15 17:35:46 959

转载 【计算机网络】路由器和交换机的区别与联系

相信有很多人在学习网络的过程中,都会对路由器与交换机的区别与联系感到疑惑不解,因为这两台设备的功能看起来似乎一样。然而,其实路由器与交换机大有不同,下面是我对此的一些理解,希望能够帮助到你!它们在哪里工作?根据 OSI模型的网络体系划分,自底向上,路由器工作在第三层(网络层),而我们常说的交换机工作在第二层(链路层)(目前有更加高级的三层交换机,四层交换机,甚至还有七层交换机)它们怎么工作它们的主要工作如下:路由器:寻址,转发(依靠 IP 地址)交换机:过滤,转发(依靠 MAC 地址)我们可

2020-12-14 10:32:56 1608

转载 【计算机网络】LAN和VLAN的区别和原理

一、LAN 本地局域网LAN 表示 Local Area Network,本地局域网。一个 LAN 表示一个广播域,含义是:LAN 中的所有成员都会收到任意一个成员发出的广播包。最基本的LAN布局上图为最基本的LAN布局。如果设备间想要通讯,必须要获取到对方的MAC地址。举例:A 发信息给 C,A 并不知道 C 的 MAC 地址。此时通过 ARP 协议(Address Resolution Protocol;地址解析协议;)获取 C 的 MAC 地址,A 先要广播一个包含目标 IP 地址的

2020-12-14 09:45:58 8750

空空如也

空空如也

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

TA关注的人

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