自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 makefile 教程

Makefile教程(绝对经典,所有问题看这一篇足够了)该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工...

2019-07-25 10:37:43 272

转载 linux sort命令详解

转载出处:https://www.cnblogs.com/xudong-bupt/p/3721984.html

2019-05-20 10:20:23 380

转载 Gdb的常用命令

GDB(参考文档https://blog.csdn.net/linux7985/article/details/52399439)小结:常用的gdb命令 backtrace //显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where) breakpoint //在程序中设置一个断点 cd //改变当前工作目录 ...

2019-05-17 11:27:29 269

转载 互联网公司分布式集群架构图入门解析(转载)

互联网公司分布式集群架构图入门解析(简单通俗易懂,超详细)置顶2018年11月08日 09:32:44英俊帅比林阅读数:1593标签:集群分布式互联网架构java更多个人分类:JavaWeb一、小型公司网络架构狗子是某大学计算机专业本科应届毕业生,由于自己的技术不错,再加上互联网产业的巨大利润的驱使,狗子决定走上创业这条路,于是,狗子联合了同学二黑,鸡子,狗蛋等人花费...

2019-04-08 22:02:30 579 1

转载 Linux内存管理(转载他人)

摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市...

2019-03-31 17:39:36 186 1

转载 计算机网络基本知识总结

参考文章:https://blog.csdn.net/Oeljeklaus/article/details/80533028

2019-03-07 20:43:21 333

转载 快速排序的优化

参考:http://blog.taoaili999.cn/2017/06/29/QuickSort-Optimization/ 快速排序的思想是分治法,当每次划分时,算法若都能分成两个等长的子序列时,那么分治算法效率会达到最大。所以基准枢纽元的选择是很重要,选择基准的方式决定了分割后两个子序列的长度,进而对整个算法的效率产生决定性影响。  通常实现的快速排序没有经过充分考虑的选择那个枢纽元,...

2018-08-24 11:02:58 319

转载 智能指针

为什么要使用智能指针:我们知道c++的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把delete语句直接也写了,但是我们不能避免程序还未执行到delete时就跳转了或者在函数中没有执行到最后的delete语句就返回了,如果我们不在每一个可能跳转或者返回的语句前释放资源,就会造成内存泄露。使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,...

2018-08-22 21:23:58 180

转载 大量数据处理方案

 1、海量日志数据,提取出某日访问百度次数最多的那个IP。    首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最...

2018-08-18 21:58:51 597

转载 二叉树面试题汇总

版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基...

2018-08-18 20:10:48 208

转载 进程间通信之:socket详解

进程间通信之:socket置顶2016年12月14日 15:25:27阅读数:3112  最近初步学习了本地进程间通信的方式(PIPE、FIFO、message queue、semaphore、shared memary),计划按照“unix 环境高级编程”来学习socket,但是书本上来就讲socket的一些api,感觉一直没搞懂,通过今天的网络搜索,终于发现几篇不错的文章,再次整理...

2018-08-18 16:07:01 15118

转载 Linux进程间通信方式

原文地址::https://www.cnblogs.com/skyofbitbit/p/3651750.html 相关文章1、Linux下进程通信的八种方法----https://www.cnblogs.com/sooner/archive/2013/05/16/3082758.html2、Linux进程间通信——使用信号----http://blog.csdn.net/ljian...

2018-08-18 15:41:44 166

转载 volatile 是干什么用的?使用实例有哪些?

1. 为什么用volatile?    C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler that an...

2018-08-18 15:19:25 1306

原创 CVTE二面问题汇总

1.TCP的黏包问题如何处理?1 什么是粘包现象  TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。2 为什么出现粘包现象  (1)发送方原因  我们知道,TCP默认会使用Nagle算法。而Nagle算法主要做两件事:1)只有上一个分组得到确认,才会发送下一个分组;2)收集多个小分组,在一个确认到来时一起发送。...

2018-08-17 21:13:55 1869

原创 TCP协议

TCP的报头Source Port,Dest Port:源端口和目的端口,和IP层的源IP和目的IP来唯一确定一个socket。 Sequence Number:包的序列号,主要用来解决乱序的问题。 Acknowledgement Numbe:就是ACK——用于确认收到,用来解决不丢包的问题,也会用来进行窗口更新。 Window:滑动窗口,通过接受方来控制发送方,达到流量控制的目的。...

2018-08-15 23:16:31 209

原创 C++内存管理

栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区,就是那些由malloc等分配...

2018-08-11 23:18:42 181

原创 不带输入背包数目的0-1 背包问题

#include <iostream>#include <math.h>#include <vector>#include <sstream>#include <stdio.h>using namespace std;vector<int> splitStr(string s){ int j=0; ...

2018-08-08 22:54:11 175

原创 复杂链表的复制

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 三步 法 链接:https://www.nowcoder.com/questionTerminal/f836b2c43afc4b35ad6adc41ec941dba来...

2018-07-28 00:27:13 166

转载 二叉树中和为某一值的路径

 二叉树中和为某一值的路径输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 链接:https://www.nowcoder.com/questionTerminal/b736e784e3e34731af99065031301bca...

2018-07-27 12:48:52 130

原创 拼多多第二题

#include <iostream>#include <vector>#include <algorithm>using namespace std;int main() { int number;//球星数量 int vote;//投票数 while(cin>>number>>vote) {...

2018-07-23 00:34:40 381

原创 拼多多第一题

#include<iostream>#include <math.h>#include<algorithm>using namespace std;int main(){ int n; cin>>n; int res; int temp; int m; int i=0; double...

2018-07-22 23:47:53 204

原创 有效IP识别

请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。 所有的IP地址划分为 A,B,C,D,E五类 A类地址1.0.0.0~126.255.255.255; B类地址128.0.0.0~191.255.255.255; C类地址192.0.0.0~223.255.255.255; D类地址224.0.0...

2018-07-18 16:38:26 862

转载 火车进站

题目描述给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。要求以字典序排序输出火车出站的序列号。 输入描述: 有多组测试用例,每一组第一行输入一个正整数N(0<N<10),第二行包括N个正整数,范围为1到9。输出描述: 输出以字典序从小到大排序的火车出站序列号,每个编号以空格隔开...

2018-07-17 17:21:58 993

转载 动态规划 | 带有通配符的字符串匹配

动态规划 | 带有通配符的字符串匹配(浅显易懂)时间:2015-08-15 06:46:15      阅读:5178      评论:0      收藏:0      [点我收藏+]标签:动态规划   wildcard   leetcode   字符串匹配   通配符   带有通配符的字符串匹配一、Leetcode | 44 Wildcard Matching(只有一个字符串包含...

2018-07-17 12:50:47 2559

原创 next_permutatio实现全排练

#include <iostream>#include <stdio.h>#include <algorithm>using namespace std;const int N=4;int num[N];int isSolve=0;int main(){ int A[N]; while(cin>>A[0]>&g...

2018-07-16 23:07:39 289

转载 static的用法(记忆性)

static用法小结 static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, stat...

2018-07-07 17:31:18 945

转载 深拷贝和浅拷贝的区别

深浅拷贝的区别:    浅拷贝是将原始对象中的数据型字段拷贝到新对象中去,将引用型字段的“引用”复制到新对象中去,不把“引用的对象”复制进去,所以原始对象和新对象引用同一对象,新对象中的引用型字段发生变化会导致原始对象中的对应字段也发生变化。    深拷贝是在引用方面不同,深拷贝就是创建一个新的和原始字段的内容相同的字段,是两个一样大的数据段,所以两者的引用是不同的,之后的新对象中的引用型字段发生...

2018-07-07 17:14:16 426 1

转载 typeof和Define

typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。 #define是预处理指令。下面让我们一起来看。typedef是C语言语句,其功能是用户为已有数据类型取“别名”。 例如: typedef int INTEGER;  这以后就可用INTEGER来代替int作整型变量的类型说明了,如:  INTEGER a,b;   用type...

2018-07-07 14:17:23 1030

转载 sizeof()的用法

以下运行环境都是一般的,在32位编译环境中1、基本数据类型的sizeofcout<<sizeof(char)<<endl; //结果是1cout<<sizeof(int)<<endl; //结果是4cout<<sizeof(unsigned int)<&l...

2018-07-07 13:50:15 377

转载 C++程序内存分配

在现代的操作系统中,当我们说到内存,往往需要分两部分来讲:物理内存和虚拟内存。从硬件上讲,虚拟空间是CPU内部的寻址空间,位于MMU之前,物理空间是总线上的寻址空间,是经过MMU转换之后的空间。一般我们所说的程序在内存中的分布指的就是程序在虚拟内存中的存储方式。从低地址到高地址,可分为下面几段: 预留内存地址(操作系统维护的内存地址,不可访问) 程序代码区(只读,存代码和一些其他的东西); dat...

2018-07-06 23:53:36 231

原创 cpp面试(精华)

CPP面试总结一、CPP语言相关1、虚函数是怎么实现的2、虚函数与纯虚函数3、什么是多态,多态有什么用途。4、结构体与联合体的区别5、指针与引用的区别6、C++程序内存分布7、STL中vector、set、map是怎么实现的8、STL内存是怎么分配和管理的9、sizeof()的值,以及对齐原则10、typedef与#define的区别11、static的作用http://www.cnblogs.c...

2018-07-06 11:09:29 1748

转载 STL的底层实现机制

1.STL的底层实现:STL底层数据结构实现C++ STL 的实现:1.vector      底层数据结构为数组 ,支持快速随机访问2.list            底层数据结构为双向链表,支持快速增删3.deque       底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问deque是一个双端队列(double-ended...

2018-07-06 11:01:46 2220

原创 指针和引用的区别

1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下面2句定义了一个整形变量a...

2018-07-05 23:17:17 153

转载 纯虚函数和虚函数的区别

首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:class A{public:    virtual void foo()    {        c...

2018-07-05 20:56:14 169

转载 C++虚函数的实现机制

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述...

2018-07-05 20:07:27 288

原创 C++多态的实现

C++是面对对象的程序设计。面对对象的程序设计有4大特性:分别是,抽象、封装、继承、多态。今天我们就来总结一下多态的内容。多态:分为静态多态和动态多态:#include<iostream>using namespace std;int Add(int a,int b)//1{ return a+b;}char Add(char a,char b)//2{ ...

2018-07-05 15:51:19 134

转载 STL之Stringstream字符串流使用总结(转)

如果你已习惯了<stdio.h>风格的转换,也许你首先会问:为什么要花额外的精力来学习基于<sstream>的类型 转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int类型转换到字符串类型。为了正确地完成这个任 务,你必须确保证目标缓冲区有足够大空间以容纳转换完的字符串。此外,还必须使用正确的格式化符。如果使用了不正确的格式化...

2018-07-05 14:08:28 261

转载 STL容器的使用方法(参考)

C++中有两种类型的容器:顺序容器和关联容器。顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与vector类似,但是对首元素提供插入和删除的双向支持。关联容器主要有map和set。map是key-value形式,set是单值。map和set只能存放唯一的key,multimap和multise...

2018-07-05 11:13:51 628

转载 求n个元素中第二小元素

一、题目证明:在最坏情况下,利用n+ceil(lgn)-2次比较,即可得到n个元素中的第2小元素。(提示:同时找最小元素)二、算法过程step1:对所有元素,两个一组比较大小,小的一个进入下一轮比较。一直到比较出最小的元素。此时所有比较结果构成一棵二叉树。比较次数为n-1。step2:沿着树从树根向下到叶子,找出第二小的元素,比较次数是ceil[lgn]-1。令m2[p]表示以p为根的树中的第二小...

2018-07-01 21:46:43 979

原创 线性时间排序算法

一般我们使用的堆排序,归并排序都是属于比较排序,也就是通过比较元素的大小来进行排序,可以通过决策树分析出比较排序的时间下界是O(nlgn),堆排序和归并排序都是渐进最优的比较排序算法。还有其他的排序方法不是通过比较,下面总结一下:一:计数排序大致思路是将数组中所有元素对应小于这个元素的个数存储起来,这样我们可以直接知道这个元素的位置,因为可能出现相同的元素,所以我们从后面输出(为了稳定性)而且每次...

2018-07-01 18:08:07 816

空空如也

空空如也

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

TA关注的人

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