自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 socket新打开窗口之后,原窗口的文本域无法显示新消息

自己写了个winform界面程序,过程中出现了一个问题。客户端在登录成功后接受不到服务器的消息了。排查了很多问题,发现是新窗体打开的才导致接收不到消息。上网查解决办法,第一个找到的是form.show和form.showdialog区别,form.show()方法打开的窗体被称作非模式窗体。这种非模式窗体及时还用户还没有处理,用户也可以切换到其他的窗体进行其他的操作。非模式窗体让用户的操...

2019-08-12 16:35:20 326

原创 skinEngine如何在不同的窗体切换皮肤

最近又在用C#写一个桌面软件...,一般winform自带的窗体比较丑,在网上发现了skinengine这个东西,插件的安装就不介绍了,网上有很多文章介绍,例如这个https://www.cnblogs.com/mq0036/p/6654219.html,我在实现过程中碰到了一些问题。 第一是如果后面加入的窗体希望恢复默认皮肤,可以使用两种办法解决,一是在ShowDialog将skin...

2019-07-30 10:02:29 766

原创 Ubuntu R语言 install.packages出错

刚捣鼓完小程序,最近又踏上了R语言的学习。。我是真的很闲吧自己买了个腾讯云的服务器,用的ubuntu的系统,教程在W3C上面学习,但是在实际过程中发现有点Package本身不包括需要手动安装,下面列举几个碰到的问题。1.plotrix这个包的问题是出在我开始的R版本是2开头的,这个包不支持,所以我就更新了一下R的版本,具体操作如下版本更新后再install.packages("p...

2019-07-10 11:03:47 1558

原创 微信小程序踩过的坑

最近在研究微信小程序,想着自己所学的计算机知识能不能帮家里做的产品结合起来。花了几天时间学习了WXML,WXSS,JS(相当于HTML,CSS,JS)总的来说在C++语言的基础上学习并没有太多困难,自己捣鼓了两个礼拜,最后也顺利做出来了。在此总结下这些日子踩到的坑。 1.我们有时会想在界面端显示数据库存储的内容,而读出来显示为空{{ }},这种情况是你的数据库的权限没有设置,我们需要把权...

2019-07-03 09:39:11 230

原创 写在入职前夕...

   明天就要前往魔都上海开往人生新的纪元,说实话心里一点底都没有。这几天临时抱拂脚学的东西也不知道记没记住,dota2倒是拿了个勇士联赛冠军(滑稽)。  大学是一个普通的二本,大一大二也过的很荒废,我觉得我在计算机方面也并没有什么特殊的天分,做的比较满意的可能是有恒心了:大三一学期成功减肥20多斤,牛客网刷了2000多题。。。追女生也是!写博客的习惯刚开始是老师布置给我们的任务,从今往后工作上学...

2018-03-25 22:08:12 445 3

原创 STL读书笔记(一)

SGI 空间分配器具备次分配能力。  第一级配置器以malloc(),free(),realloc(),等C函数执行实际的内存配置、释放、重配置操作,并实现出类似C++ new handler的机制,是的,它不能直接运用C++ new handler机制,因为它并非使用::operator new 来配置内存。  所谓C++ new handler机制是,你可以要求系统在内存配置需求无法被

2017-10-22 22:26:19 266

原创 GNU下Makefile执行顺序

Gnu make的执行过程分为两个阶段第一阶段:读取所有的makefile文件(包括“MAKEFILES”变量指定的、指示符“include”指定的、以及命令行选项“-f(--file)”指定的makefile文件),内建的变量、明确规则和隐含规则,并建立所有目标和依赖之间的依赖关系结构链表。第二阶段:根据第一阶段已经建立的依赖关系结构链表决定哪些目标需要更新,并使用对应的

2017-09-18 21:31:00 3779

原创 CVTE 软件工程师一面

秋招第一面,以及很满足了!应该跪了,写一篇面经攒人品1.介绍一下你的项目(大家对自己项目一定要滚瓜烂熟,包括哪一个函数里哪些参数等等)面试官问了你觉得你这个项目哪些出彩的地方2.系统调用和函数调用区别(这个没答上来)3.多线程多进程,多线程如何加锁,进程通信方式、无名管道如何使用包括函数原型等等4.问了select和epoll的区别因为我项目有用到,epoll相对的优点5.

2017-09-17 20:47:42 473

转载 为什么TCP传输是可靠的

TCP提供一种面向连接的、可靠的字节流服务。   面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP通过下列方式来提供可靠性:1、应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。

2017-09-14 22:35:40 3943

原创 面试题Getmemory

题目一:[cpp] view plain copyprint?void GetMemory( char *p )  {   p = (char *) malloc( 100 );  }    void Test( void )   {   char *str = NULL;   GetMemory( str );    strcpy( str, "h

2017-09-12 08:21:15 568

转载 C语言内存布局

转载自:    http://blog.csdn.net/gatieme由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-链接三个阶段。编译过程把c语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,链接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。        C语言编写的程序经过编译-连接后,将形成一个统一格式的二进制可执行文件

2017-09-01 21:16:03 355

转载 高性能Server-Reactor模型

高性能Server---Reactor模型Jul 23, 2016 | io |742 Hits无处不在的C/S架构在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的!你发邮件用的Outlook,Foxmail等你看视频用的优酷,土豆等你写文档用的Office365,googleDoc,Evernote等你浏览网页用的IE,Chrome等(B/S是特殊

2017-08-30 17:45:14 376

转载 select、poll、epoll整理总结

原地址:http://blog.csdn.net/tianmohust/article/details/6677985/首先对作者表示感谢,整理的很详细,读完受益匪浅!!!一).Epoll 介绍Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并

2017-08-25 17:47:29 227

转载 IO多路复用机制

高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(

2017-08-24 15:57:54 368

转载 算法-字符串全排列问题

转载地址:http://blog.csdn.net/hackbuteer1/article/details/7462447全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。

2017-08-23 16:28:08 478

原创 面试易错题整理(一)

派生类的构造函数的初始化列表中,不能包含(       )。正确答案: C A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化D.派生类中一般数据成员的初始化解析:(1)派生类中的基类子对象和子对象必须初始化,初始化在派生类的构造函数的初始化列表中,如果初始化列表中没有进行初始化,则调用缺省的构造函数进行初始化。 (2)派生类构造函数

2017-08-21 16:06:07 310

原创 算法-连接两条排序的链表

之前在牛客网上面做的题目,感觉对自己很有帮助,而且以后面试可能会用到,整理了两种方法,递归的和非递归的,同时也是对代码再一次巩固了。ok,第一种,用递归实现!class Solution{ ListNode * Merge(ListNode* pHead1, ListNode *pHead2) { if (pHead1 == NULL) //如果pHead1

2017-08-20 21:05:53 297

转载 KMP算法详解

从头到尾彻底理解KMP原文章地址:http://blog.csdn.net/v_july_v/article/details/70418271. 引言    本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文。

2017-08-17 20:44:40 232

转载 几种常用的操作系统调度策略

一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的

2017-08-16 17:23:04 22069

原创 B树和B+树区别

B树和B+树的区别 如图所示,区别有以下两点:1. B+树中只有叶子节点会带有指向记录的指针(ROWID),而B树则所有节点都带有,在内部节点出现的索引项不会再出现在叶子节点中。2. B+树中所有叶子节点都是通过指针连接在一起,而B树不会。 B+树的优点:1. 非叶子节点不会带上ROWID,这样,一个块中可以容纳更多的索引项,一是可以降低树的高度。二是一

2017-08-14 20:34:07 638 1

原创 网络通信协议TCP

TCP的上一层是应用层,TCP向应用层提供可靠的面向对象的数据流传输服务,TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递。它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信。),应用程序通过向TCP层提交数据接发送/收端的地址和端口号而实现应用层的数据通信。通过IP的源/目的可以惟一地区分网络中两个设备的连接,通过socket的源/目的可以惟一地区

2017-08-13 18:43:57 343

转载 Linux下创建进程的三种方式及特点

在Linux中主要提供了fork、vfork、clone三个进程创建方法。 在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时,通过一个系统调用表映射到sys_fork(),sys_vfork(),sys_clone(),再在这三个函数中去调用do_fork()去做具体的创建进程工作。 fork     fork创建一个进程时,子进程只是完全

2017-08-12 14:39:06 23998

原创 进程线程面试题总结

1.什么是进程?什么是线程?进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结构的操作系统

2017-08-11 15:55:32 37974

原创 约瑟夫环问题(数组和list方法)

先介绍一下什么是约瑟夫环问题:就是N个人围成一圈,从开头(下标为0)报数,报到你设置的Number就要出局,几轮下来后剩下最后一个人输出这个人的序号!这里只介绍两种比较浅显易懂自己编写的代码,另外还有链表和递归的方式可以自行百度。ok,第一种我们用数组来写。int main(){ int total = 0; cout << "total:" << endl; cin >

2017-08-10 19:51:30 7256

翻译 Let’s Hook a Library Function(给库函数设置钩子)

如果你是一个开发者,并且希望能够改变库函数工作的方式,这篇文章将给你一个基本的方法教你如何使用有限的知识来对你的库函数进行实验。这边所有的都是C代码,并且使用Linux下的GCC进行测试。Wikipedia说过:"在电脑编程上,给函数加钩子这个操作包含了大量技术,这些技术是通过拦截软件之间的函数调用、传递的消息或者是事件的方式来修改或者增强一个操作系统的行为,应用或者其他的软件成分。用来完成这些操

2017-08-09 16:55:24 883

转载 C++内存布局(下)

原地址:http://blog.csdn.net/haoel/article/details/3081385重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。  其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(1字节),而且还有

2017-08-07 17:16:07 183

转载 C++对象的内存布局(上)

转载自:http://blog.csdn.net/haoel/article/details/3081328对象的影响因素 简而言之,我们一个类可能会有如下的影响因素: 1)成员变量2)虚函数(产生虚函数表)3)单一继承(只继承于一个类)4)多重继承(继承多个类)5)重复继承(继承的多个父类中其父类有相同的超类)6)虚拟继承(使用virtua

2017-08-03 15:48:35 164

转载 虚函数表解析

原博客地址:http://blog.csdn.net/haoel/article/details/1948051前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。

2017-08-01 15:16:26 152

转载 Debug版本和Release版本区别

Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。     Debug版本包括调试信息,所以要比Release版本大很多(

2017-04-19 21:01:49 381

原创 C++new数组

定义二维数组char array[x][y]; 1.只定义个一维的就可以了 char *array; array = new char[x*y]; 访问的时候*(array+i*y+j)表示array[i][j] 2.定义一个二维数组 char **array1 array1 = new char *[x]; for(i=0;iarray1[i] = new c

2017-04-05 18:05:10 8210

转载 单片机,MCU,计算机原理笔试题

1、简单描述一个单片机系统的主要组成模块,并说明各模块之间的数据流流向和控制流  流向。简述单片机应用系统的设计原则。(仕兰微面试题目)  (1)单片机系统主要为运算和通信(以此为根本),具体又细分为七部分:计算(CPU)、通信(与外界交流)、            电源(系统能源供给)、存储(RAM、ROM)、输入(按键等)、输出(液晶、数码管、点阵等)、协处理器        

2017-03-28 18:27:29 4342 1

原创 C++进制问题总结

1.十进制转十六进制#include #include  using namespace std;int main(){  //int m, n;  long int n;  vector v;  char s[] = "0123456789ABCDEF";//字典   cin >> n;   if (n 2147483647)  {

2017-03-27 18:33:58 286

原创 数据结构之排序整理C++

例题1:给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1插入排序:题目代码:#includeusing namespace std;void Sort(int *a,int n){ //插入排序   int i,j,temp,k;  for(i=1;i  {     temp = a[i];     for(j=i-1;j>=0&&a[j]

2017-03-22 13:04:41 460 1

转载 贪心算法

原文链接:http://blog.csdn.net/effective_coder/article/details/8736718有人说贪心算法是最简单的算法,原因很简单:你我其实都很贪,根本不用学就知道怎么贪。有人说贪心算法是最复杂的算法,原因也很简单:这世上会贪的人太多了,那轮到你我的份?                                     

2017-03-16 08:57:24 754 1

原创 C++模板写计算器 带()

#include "stack.h"#include using namespace std;int main(){ Stack number_; Stack operator_; char src[100]; cout << "请输入表达式" << endl; cin >> src; int i = 0; while (1) { if (src[i] =

2017-03-15 09:18:59 1004

原创 this指针的用法解释

先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针

2017-02-09 08:55:17 343

原创 C++对C的升级

1.声明和定义我们在c语言中,通常把变量的声明放在文件开头,即所有要用到的变量统一定义,而在c++中,我们可以把变量的定义放在快要用到的时候,例如,for语句,在c中我们是int i = 3;for(i = 0; i {}而在c++中,我们可以for(int  i = 0;i 2.register 关键字的升级在C语言中,register的作用是修饰一个变量,该变量经常

2017-02-07 09:34:39 295

转载 c++易错题

1.如下代码输出结果是什么?12345678910111213141516#includechar*myString(){    charbuffer[6] = {0};    char*s = "Hello World!";    for(int i = 0

2017-01-16 11:21:52 341

原创 Linux发送结构体

Linux网络通信 Linux下多客户端聊天软件 Linux程序设计 Linux socket send and recevie structure  最近在开发一个Linux下的聊天软件,好久没有做C语言的开发了,感觉到很多东西已经生疏了,这下又碰到用Socket传递结构体的问题,google了一下,发现也有不少朋友遇到同样的问题,所以就打算写出自己的解决办法,跟大家分享。  S

2017-01-06 22:25:11 541

原创 32位系统和64位区别

第一,设计初衷不同。64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。 第二,要求配置不同。64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥6

2017-01-03 17:25:47 287

空空如也

空空如也

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

TA关注的人

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