自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 内存泄漏及其检测方法

文章目录一、内存泄漏的定义二、VS下内存泄漏的检测方法(CRT)三、Linux系统下内存泄漏的检测方法(valgrind)一、内存泄漏的定义  内存泄漏指的是在程序里动态申请的内存在使用完后,没有进行释放,导致这部分内存没有被系统回收,久而久之,可能导致程序内存不断增大,系统内存不足……引发一系列灾难性后果。二、VS下内存泄漏的检测方法(CRT)#defi...

2019-10-28 08:42:43 487

转载 linux线程切换和进程切换的方法

linux线程切换和进程切换的方法更新时间:2017年01月04日 11:49:39 投稿:jingxian 我要评论下面小编就为大家带来一篇linux线程切换和进程切换的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧进程切换分两步:1.切换页目录以使用新的地址空间2.切换内核栈和硬件上下文对于linux来说,线程和进程...

2019-10-27 15:56:19 1183

转载 [漏洞分析] 栈基础 & 栈溢出 & 栈溢出进阶

[漏洞分析]栈基础 & 栈溢出 & 栈溢出进阶 栈基础 内存四区 代码区(.text):这个区域存储着被装入执行的二进制机器代码,处理器会到这个区域取指令执行。 数据区(.data):用于存储全局变量和静态变量等。 堆区:动态地分配和回收内存,进程可以在堆区动态地请求一定大小的内存,并在用...

2019-10-27 15:49:59 1535

转载 多级反馈队列调度算法

多级反馈队列调度算法如果有很多任务排队等着被处理,哪个任务先被处理,哪个任务后处理,这个需要由操作系统决定,这就是调度。多级反馈队列调度算法是目前操作系统调度算法中被公认的一种较好的调度算法。它可以满足各种类型进程的需要,既能使高优先级的作业得到响应又能使短作业(进程)迅速完成。基本概念多级反馈队列调度算法是一种根据先来先服务原则给就绪队列排序,为就绪队列赋予不同的优先级数,...

2019-10-27 15:29:07 3235

转载 单例模式的优缺点和使用场景

单例模式的优缺点和使用场景转载:http://www.tools138.com/create/article/20150929/020009847.html首先介绍一下单例模式: 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为...

2019-10-27 14:34:59 281

转载 C++中为什么构造函数不能定义为虚函数

关于C++为什么不支持虚拟构造函数,Bjarne很早以前就在C++Style and Technique FAQ里面做过回答Avirtual call is a mechanism to get work done given partialinformation. In particular, "virtual" allows us to call afunction knowing on...

2019-10-27 14:29:52 351

转载 vim基本操作大全

曾经使用了两年多的Vim,手册也翻过一遍。虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享。1. 关于Vimvim是我最喜欢的编辑器,也是Linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtut...

2019-10-27 09:51:23 348

转载 select、poll、epoll之间的区别(内容最权威***)

select、poll、epoll之间的区别(搜狗面试)(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复...

2019-10-27 08:55:14 281

原创 LSTM论文写作参考

人人都能看懂的LSTM

2019-10-22 20:10:14 2067

原创 知乎---LSTM总结

人人都能看懂的LSTM人人都能看懂的LSTM介绍及反向传播算法推导(非常详细)

2019-10-21 19:19:22 688

原创 C/C++产生一定范围内随机数的若干问题

rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。#include<stdlib.h> //rand()1. 产生+-范围的随机数的方法: -b ~ +b rand_ = rand()%(2*b) - b;2. 浮点随机数的产生方式 #include <math.h&g...

2019-10-20 18:46:51 472

原创 VS2017 C++项目常见问题

1.cl: 命令行 error D8016 :“/ZI”和“/Gy-”命令行选项不兼容今天用vs2019打开一个VC6.0的dsw项目。编译不通过,原因是命令行选项不兼容。错误代码:1>cl: 命令行 warning D9035 :“Gm”选项已否决,并将在将来的版本中移除 1>cl: 命令行 error D8016 :“/ZI”和“/Gy-”命令行选项不兼容...

2019-10-20 15:28:18 3769 3

转载 TCP头部分析与确认号的理解

TCP头部分析与确认号的理解1、TCP的特点:基于字节流面向连接可靠传输缓冲传输全双工流量控制2、头部格式和说明图源百度。如下图示,就是TCP包的头部结构。可以看到这个头部最少有4x5=20个字节。另外还需要理解TCP协议是承载在IP协议中的。关于IP协议可以参考:http://www.cnblogs.com/xcywt/p/8067521.html源端...

2019-10-18 19:01:53 1962

转载 TCP粘包问题分析和解决(全)

TCP粘包问题分析和解决(全)TCP通信粘包问题分析和解决(全)在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小、数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就...

2019-10-18 13:19:58 425

转载 pthread线程属性介绍

pthread线程属性介绍其他参考: 1.pthread 线程属性(最全,重点参考*****) 2.pthread线程库使用介绍线程属性创建线程函数int pthread_create (pthread_t* restrictthread, const pthread_attr_t* restrict...

2019-10-18 11:02:30 491

原创 gcc与g++的区别

1.gcc与g++的区别2.gcc和g++的区别

2019-10-18 10:56:31 223

转载 Linux网络编程常用头文件解释

sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数其他在网络程序中常见的头文件...

2019-10-13 13:56:11 2672

转载 七、linux网络编程

网络编程基础 网络编程,首先了解计算机网络体系结构是有必要的,着重掌握TCP、IP协议,理解socket的概念,理解数据报方式和流式套接字的原理,熟练掌握相关数据结构的使用 数据报和流式套接字的工作过程 基本概念 linux操作系统一切皆文件的概念在socket通信过程中体现的十分完整,通过一个文件描述符来索引一个socket,创建socket的系统调用为 ...

2019-10-13 10:36:20 189

转载 Socket网络编程

Socket网络编程Qfan公众号(Qfan)分享技术、职场、人生、以及毕业后的点点滴滴​关注他10 人赞同了该文章Linux Socket编程(不限Linux)Linux下的C++ socket编程实例Socket实战之一--快速入门套接字概念Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助...

2019-10-13 10:08:43 283

原创 合并 k 个排序链表

合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merg...

2019-10-11 10:36:07 192

转载 C++优先级队列(堆)

优先队列是一种容器适配器。它的第一个元素总是包含元素的最大值。优先队列类似于堆,可以随时插入新的元素,只有堆中最大的元素可以被访问(优先队列队首元素)。优先队列属于容器适配器,即优先队列本身也封装了容器,并提供了一些接口来访问成员。优先队列封装的容器必须支持随机访问,并且支持empty(),size(),front(),push_back(),pop_back()成员函数。支持随机访...

2019-10-11 10:33:39 776

转载 stringstream

stringstream2019.02.25 11:15:03字数 71阅读 299A stringstream associates a string object with a stream allowing you to read from the string as if it were a stream (like cin).注意:小心stringstream.s...

2019-10-10 14:34:39 204

转载 C++——cctype

写在前面这篇博客主要来整理一下C++标准库中cctype中的主要函数。之所以要整理这个库,是因为 LeetCode-125. Valid Palindrome,这道题目中,如果知道这个库里的函数,那么就会轻松简单很多。该库主要是字符处理功能,这个头文件声明了一组函数来分类和变换单个字符。这个库中主要有两种函数:一类负责字符分类功能;一类负责字符转换功能。Character classif...

2019-10-10 10:29:18 240

转载 为什么ctype.h中的函数参数都是int类型

为什么<ctype.h>中的函数参数都是int类型<ctype.h> 头文件中包含了一系列与字符处理有关的函数,这些函数有一个共同特点:它们的参数都是 int 类型。例如:int isalnum ( int c ); int islower ( int c ); int isupper ( int c ); int tolower ( int c ); in...

2019-10-09 18:34:23 421

原创 匈牙利算法

你有一块棋盘,棋盘上有一些格子已经坏掉了。你还有无穷块大小为1 * 2的多米诺骨牌,你想把这些骨牌不重叠地覆盖在完好的格子上,请找出你最多能在棋盘上放多少块骨牌?这些骨牌可以横着或者竖着放。输入:n, m代表棋盘的大小;broken是一个b * 2的二维数组,其中每个元素代表棋盘上每一个坏掉的格子的位置。输出:一个整数,代表最多能在棋盘上放的骨牌数。来源:力扣(LeetCo...

2019-10-08 20:52:07 495 2

原创 动态规划笔记

这里主要介绍两种情形:1. 小偷偷一排店铺,被偷的店铺不能连着,否则报警。 6,3,1,5,2,7偷到的最大价值是 6+5+7=18定义问题: dp[i] 表示前i个店铺偷到的最大值, dp[i] = max(dp[i-2]+a[i],dp[i-1]);另外,本体也可以用记忆化搜索: mem[i] 表示以第i个店铺结尾的店铺...

2019-10-06 10:33:47 221

原创 求算数平方根的4种方法

求一个整数的算数平方根,输出整数。解法一:牛顿迭代法:// 牛顿法// f(x) = x^2 - a// 求解 a 的平方根, 即求解 f(x) = 0 的解// f(x) ~= f(x0) + (x - x0) * f'(x0);// 令 f(x) = 0 => x = (x0 + a/x0) /2 => 得到该迭代公式....

2019-10-03 09:56:26 18399 2

转载 通配符匹配

题目:给定一个字符串(s) 和一个字符模式(p) ,实现一个支持'?'和'*'的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符?和*。来源:力扣(LeetCode)链接:ht...

2019-10-02 09:28:50 381

转载 Linux内存管理中的slab分配器

Linux内存管理中的slab分配器转载自:http://edsionte.com/techblog/archives/4019注:slab分配器用于内核中。Linux内核中基于伙伴算法实现的分区页框分配器适合大块内存的请求,它所分配的内存区是以页框为基本单位的。对于内核中小块连续内存的请求,比 如说几个字节或者几百个字节,如果依然分配一个页框来来满足该请求,那么这很明显就是一种浪...

2019-09-26 13:47:09 268

转载 stl源码分析之hash table

stl源码分析之hash table本文主要分析g++ stl中哈希表的实现方法。stl中,除了以红黑树为底层存储结构的map和set,还有用哈希表实现的hash_map和hash_set。map和set的查询时间是对数级的,而hash_map和hash_set更快,可以达到常数级,不过哈希表需要更多内存空间,属于以空间换时间的用法,而且选择一个好的哈希函数也不那么容易。一、 哈希表基本概...

2019-09-22 15:47:43 228

转载 Linux进程分配内存的两种方式--brk() 和mmap()

malloc()和mmap()等内存分配函数,在分配时只是建立了进程虚拟地址空间,并没有分配虚拟内存对应的物理内存。当进程访问这些没有建立映射关系的虚拟内存时,处理器自动触发一个缺页异常。缺页中断:在请求分页系统中,可以通过查询页表中的状态位来确定所要访问的页面是否存在于内存中。每当所要访问的页面不在内存是,会产生一次缺页中断,此时操作系统会根据页表中的外存地址在外存中找到所缺的一页,将其调...

2019-09-22 14:07:52 371

转载 消息队列

首先抛出问题 为什么使用消息队列啊?消息队列有什么优点和缺点啊?kafka、activemq、rabbitmq、rocketmq都有什么优点和缺点啊? 如何保证消息队列的高可用啊? 如何保证消息不被重复消费啊(如何进行消息队列的幂等性问题)? 如何保证消息的可靠性传输(如何处理消息丢失的问题)? 如何保证消息的顺序性? 如何解决消息队列的延时...

2019-09-22 13:55:44 266

转载 Linux系统编程—消息队列

1、消息队列简介消息队列本质上是位于内核空间的链表,链表的每个节点都是一条消息。每一条消息都有自己的消息类型,消息类型用整数来表示,而且必须大于 0。每种类型的消息都被对应的链表所维护:图1 位于内核空间的消息队列.png其中数字 1 表示类型为 1 的消息,数字2、3、4 类似。彩色块表示消息数据,它们被挂在对应类型的链表上。值得注意的是,刚刚说过没有消息类型为 ...

2019-09-22 13:52:46 359

转载 利用管道实现进程间通信

利用管道实现进程间通信管道通信匿名管道创建匿名管道int pipe(int pipefd[2]);pipefd[0] : 表示读管道pipefd[1] : 表示写管道返回 0表示成功,非零表示创建失败。代码事例//匿名管道 ...

2019-09-22 13:33:21 423

转载 OpenStack各组件逻辑关系、通信部署关系及工作流程

OpenStack各组件逻辑关系、通信部署关系及工作流程一、OpenStack组件之间的逻辑关系OpenStack 是一个不断发展的系统,所以 OpenStack 的架构是演进的,举个例子:E 版本有5个组件Compute 是 Nova;Image 是 Glance,为 Nova 提供镜像存储服务;Object 是提供 Object 存储服务的 Swift;Dashboard 是...

2019-09-20 23:47:07 2240

转载 C/C++堆栈指引

C/C++堆栈指引Binhua Liu前言 我们经常会讨论这样的问题:什么时候数据存储在飞鸽传书堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中的;debug时,查看堆栈可以知道函数的调用顺序;函数调用时传递参数,事实上是把参数压入堆栈,听起来,堆栈象一个大杂烩。那么,堆栈(Stack)到底是如何工作的呢? 本文将详解C/C++堆栈的工作...

2019-09-18 10:24:45 294

原创 最经典的动态规划

给定一个数字矩阵,如[1,3,4,7][4,7,2,8][2,7,8,0]找出严格上升最长序列的长度,如:2-》4-》7-》8.解题思想:动态规划 + 递归思想(很少遇到同时结合的)class Solution{public: vector<vector<int>> f; int dx[4]={-1,0,1,0},...

2019-09-15 18:17:52 269

原创 俄罗斯套娃问题

俄罗斯套娃问题;描述中文English给一定数量的信封,带有整数对(w, h)分别代表信封宽度和高度。一个信封的宽高均大于另一个信封时可以放下另一个信封。求最大的信封嵌套层数。解法一:二分查找 + pair对的第二位采取求最长子序列方法通过率100%。注意:代码中有6处容易错的地方,已经标注出来!class Solution {public: ...

2019-09-15 16:09:22 846

原创 调整相邻两数使总代价最小化问题

题目: 给一个整数数组,调整每个数的大小,使得相邻的两个数的差不大于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,求调整代价之和最小是多少。看到题目,首先会发现这是一题动态规划问题(最大最小值问题),每个数产生的影响虽然是左右两侧同时进行的,但是根据动态规划一般步骤:确定状态:即先考虑最后一个状态Sn(此时已经假定最优了),根绝最后一个状态倒推第二个状态Sn-1(...

2019-09-14 14:43:51 881

转载 C++11 (多线程)并发编程总结

C++11 (多线程)并发编程总结|线程 std::thread 创建std::thread,一般会绑定一个底层的线程。若该thread还绑定好函数对象,则即刻将该函数运行于thread的底层线程。 线程相关的很多默认是move语义,因为在常识中线程复制是很奇怪的行为。 joinable():是否可以阻塞至该thread绑定的底层线程运行完毕(倘若该thread没有绑定底层线程...

2019-09-13 18:26:08 259

空空如也

空空如也

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

TA关注的人

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