自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实习感悟

       这个暑假去深圳实习了一个月,这是人生第一次出去工作吧,我感触颇深,就想写一篇博客记录一下,很久都没有写博客了,应该保持这样的习惯的。        我还记得第一天去公司的时候,我按照提前排好的座位坐下,对面是我的导师,我知道,我的电脑是他提前帮我装好的,哈哈,可能是因为我是实习生里唯一的妹子吧,接下来就是按照流程搭建环境,我i还记得整整弄了一个下午,当时觉得自己真的是蠢,导师说他...

2018-08-25 21:32:44 1846

原创 STL之vector

今天想学一下stl里面的向量容器vector,写一下它的实现方式:

2018-04-26 14:19:07 163

原创 c++的设计模式之一(单例模式)

其实我们首先应该来考虑一下c++为什么会有这么多的设计模式呢???????既然有,就说明它们有着举足轻重的作用!!!!!!!!设计模式的作用:记得有人这样说过:设计模式模式之于面向对象系统的设计和开发的作用就有如数据结构之于面向过程开发的作用一般,可见它的作用是多么的大,有以下作用:

2018-04-23 20:23:41 170

原创 字符串匹配(BF算法和KMP算法)

看了老师的录频,感觉还是得自己动手写写,不然估计可能不太懂,哈哈,那我们就先来看一下BF算法:我们先来看一个例子:现有这样的一个字符串“ababcabcdabcde”和“abcd”;BF算法应该是这样的:不知道大家看懂了没,没关系,我们再来看一下代码再捋捋。int BF(const char *s,const char *sub,int pos){ int i = pos; int j = ...

2018-04-21 17:04:48 1106 1

原创 有关c++11的一些特性

很久都没进来了,感觉最近很疲惫,今天我i什么要学这个东西呢,是因为自己被不同的人问了很多次,好歹自己也学过c++;被人问过却不知道c++11真的觉得很丢人,所以我这个菜鸟打算了解一下(虽然只是皮毛),这也是分内之事喽,一起学习学习,看看人家的介绍,自己想动手试一试(你也可以动动爪爪,哈哈),在看一本书叫《深入理解c++11》,大家可以瞅瞅一:c++11的诞生2011年11月,c++11/c++0x...

2018-04-11 22:01:04 242

原创 负载均衡器

服务器端:sever.cpp#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int main(int argc,char *argv[])

2018-03-19 11:15:19 349

原创 局域网聊天

服务器端:main.cpp//运行服务器#include<iostream>#include"tcpsever.h"#include <stdio.h>#include <stdlib.h>#include <string.h>using namespace std;int main(int argc,char *argv[]){...

2018-03-19 10:24:03 270

原创 智能指针

我们先来看几个例子:int *p = new int;我们用一个指针指向一个在堆上开辟的空间,一般情况下我们会在代码的最后delete p,也就是释放我们的堆内存。不过如果我们程序可能出现这样的问题:1:int main(){     int *p = new int;     ...................     if(..........)

2017-12-07 13:59:47 251

原创 linux中一些基本命令(vi,查看系统版本,进程状态,cpu等)

《一》vi命令1>命令模式到插入模式:a:当前光标后插入i:光标位置插入o:当前光标下一行插入O:当前光标上一行插入2>光标移动快捷键shift +6:移动到一行的头部shift +4:移动到一行的尾部行号+shift+g:移动到num行shift+gg:移动到第一行shift+g:移动到尾行shift+h:移动到当前屏幕的第一行shift+l:

2017-11-30 23:04:36 2046

原创 进程和线程的区别

我们先来说一说进程和线程的由来:1>进程的引入:为什么要引入进程:我们都知道cpu的运行速度是超级超级快的,除了高速缓存和一些寄存器仅仅能跟在它的屁股后面,但是像ram或者其他资源的速度相对于cpu简直就是天壤之别,所以,我们为了提高资源的利用率,就有了多道程序的系统,即程序和程序的并发执行,这样的话可以提高资源的利用率。由于cpu的运行速度超级棒,所以多个任务之间轮流使用

2017-11-27 16:28:59 188

原创 使用C语言程序判断当前系统大小端

我们首先的了解什么是小端模式,什么是大端模式(其实自己也不太懂,相互学习喽)1>小端模式:小端模式是指数据的低字节保存在地址的低地址中,而数据的高字节保存在内存的高地址中,跟我们的逻辑思维是比较一致的2>大端模式大端模式是指数据的低字节保存在内存的高地址中,而数据的高字节,保存在内存的低地址我们先来举个例子:int a = 0xff123456我们知道,其中ff为高字节

2017-11-22 22:47:58 4909 1

原创 linux下的调试工具gdb

在说这个问题之前,我们先弄清楚两个概念:1>什么是Debug版本2>什么是Release版本Debug和Release是两种编译方式,Debug通常称为调试版本,它包含调试信息,并且不做任何优化,便于程序员调试程序Release称为发布版本,它往往进行了各种优化,使得程序在代码大小和运行速度都是最优的,以便用户很好的使用我们都知道在linux下写的代码不能直接进行调试,

2017-11-22 19:01:22 1334

原创 fork()之后都会做哪些复制,什么是写时拷贝,父子进程文件偏移量是否一致?????

首先我们先来回忆一下fork()函数:函数头文件:#include函数原型:pid_t fork(void);其中pid_t是一个宏定义:#define pid_t int返回值:fork函数调用一次返回两次:在父进程中返回生成子进程的id(因为父进程不止拥有一个子进程)在子进程返回一个整数0(因为子进程只有一个父进程,可以通过调用getppid()得到父进程的进程ID)

2017-11-20 21:41:08 2898

原创 各种排序算法集锦

今天呢,我想给大家分享一下我自己总结的几种排序算法,我们可以一起探讨探讨1》直接插入排序我们先来看一下插入排序的大概过程:比如现在有一个乱序的数组:{48,62,35,77,55,14,35,98}tmp  =  62;  {48},blank, 35,77,55,14,35,98}; 48是否大于tmp,如果大于,48后移到blank(此时tmp要和-1位置的数字进行

2017-11-17 16:36:45 404

原创 nginx惊群现象

其实我自己本身也不太懂,大家相互学习学习,这些也是我借鉴别人的。惊群:在多线程或者多进程的情况下,多个worker等待同一个socket事件,当事件发生时这些线程同时被内核调度唤醒,但是只是会有一个worker来处理事件,其他的worker在accept()返回失败后重新休眠,这种性能浪费现象就是惊群,可以想象:这种现象效率很低。应该说惊群现象它发生在服务器端,当主线程

2017-11-09 20:05:53 657

原创 malloc 和new的区别

new和malloc是经常会被人问到的问题,那么他们到底有哪些区别呢??其实他们有很多区别,以下是我总结了一些点::::一:是否调用构造函数和析构函数使用new不仅会分配空间,而且还会构造对象使用new会有三个阶段:调用operator new函数(new的重载,数组为operator new[])分配一块儿“原始的,未命名的,足够大的内存空间以便存储特定类型的对象。调

2017-11-07 13:48:50 166

原创 struct和class的区别

**************在c语言中,是没有class这个关键词的,在c和c++语言中struct是都可以存在的。**********************其实在c++中,struct 进行了功能上的扩充,它不再仅仅是包含不同数据类型的普通的数据结构;它不仅可以包含成员函数,而且还可以被继承,还可以实现多态,那么有了这些功能的它和class还会有什么区别呢??1》最主要的就

2017-11-06 20:07:27 231

原创 c++中各类型成员变量的不同方式的初始化

一:首先我们来看一下哪些成员变量必须通过构造函数的初始化列表(在构造函数体内赋值也不行)来初始化:1》const常量成员:因为常量初始化,不能赋值,所以必须放在初始化列表中进行初始化。******************************************************************************************************

2017-11-05 20:28:02 442

原创 TCP三次握手四次挥手状态转移

请大家先看一下这个图,我们用图来仔细分析!!!!!!!!!!!!!!!!!!!         相信大家只要有一点网络基础都可以很容易就看懂看到这个图接下来就会有一些问题:比如为什么是三次握手,可不可以是两次,或者四次,四次挥手可以是三次吗等等一系列问题,我们接下来会一一解答————————————————————————————————

2017-11-02 17:03:26 323

原创 怎样处理僵死进程

首先大家知道什么叫做僵死进程吗????????????1》僵死进程的定义(也叫僵尸进程):僵死进程其实就是指在子进程退出时,父进程并未对其发出的SIGCHLD的信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸,这个状态下的子进程就是僵死进程;僵死进程它不占用内存空间,也没有任何可执行的代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其它进程收集;

2017-10-31 19:16:32 385

原创 编译---链接过程

我们知道,.c文件是不能直接执行的,必须经过编译和链接阶段成为可执行文件才能够执行那么从.c文件到可执行文件需要那些过程呢?????????????????????首先我们来看编译阶段其实编译阶段可以分为这几个阶段 预编译阶段:编译阶段主要是做着几件事情:  删除注释,处理以#开头的一些预编译指令此阶段结束后生成:.i文件。 编译阶段 :编译阶段主要做这几件事情:语

2017-10-25 23:42:06 232

原创 c++中的virtual虚函数的使用

c++类中,对于基类和派生类中函数名字相同的成员函数方法对于重载:处于同一作用域,参数类型不同,函数名相同对于隐藏(只能出现在继承结构中):函数名相同的都是隐藏,调用的时候必须加基类的作用域对于覆盖:virtual虚函数(返回值,名字,参数类型都相同)这里我们就不重点区分这些不同的方法***************这里我们重点介绍一下虚函数*******************

2017-10-23 11:54:53 1973 1

原创 c++类中浅拷贝问题和赋值问题

当一个类中没有指针类型的成员变量时,是不会发生浅拷贝的问题的但是如果存在的话,就会引发浅拷贝问题////////////////////////////////////////////////我们来举个例子////////////////////////////////////////////////class CString{public:          CStrin

2017-09-27 19:28:38 492

原创 c++类对象的生存周期

********************在这里我们会通过一个例子来给大家解释说明#include using namespace std;class Test{public: Test(int a = 5,int b = 5):ma(a),mb(b) { cout<<"Test(int)"<<endl; } ~Test() { cout<<"~Test()"<<end

2017-09-22 22:44:11 599

原创 c++中带有const ,&(引用)的常见类型的错误转换

首先,编译器为什么会报错?????1:编译器会一直检测代码是否有更改st常量的可能,如果存在这样的可能,编译器就会报错。///编译器要保证不能直接或间接的去修改常量内存2:怎样看有没有错误转换呢?????(1)对于简单代码:看有没有把一个常量的地址或者引用泄露给普通的指针或者引用变量(2)对于复杂代码:找代表同一块内存的两个表达式,看是否把常量的地址试图放在一个普通指针里面

2017-09-16 10:07:48 809

原创 c和c++的区别

****一:带参数默认值???在C++中:默认值:从右向左给出,所以如果要给出参数的默认值就必须最右端开始(依次给出)(默认值可以不完全给出)比如:1》定义/*int sum(int a = 10,int b;int c = 20){ return a+b+c;}*/错误/*int sum(int a = 10,int b;int c ){

2017-09-10 20:36:22 289

原创 c++:变量在内存上的分布

在操作系统上,内存可以被分为两大部分,一部分为user space(进程虚拟地址空间,私有),另一部分为kernel space(共有空间)。内存会根据操作系统的位数来决定大小,如果是32位操作系统,那么它的大小就为2的32次方,即4G,如果是64位操作系统,就是8G.本文将分析32位操作系统。       在32位操作系统上,内存为4G,其中3G被指定为私有虚拟地址空间,1G被指定为共有空间

2017-08-26 22:23:53 316

空空如也

空空如也

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

TA关注的人

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