自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Roykuang的专栏

更像是一个技术笔记

  • 博客(29)
  • 收藏
  • 关注

原创 关于链接的总结

函数库、链接、载入编译过程一个编译过程包含如下步骤:预处理器语法和语义分析器代码生成器:将高级语言翻译成汇编语言(即狭义上的编译过程),并生成汇编文件(.s文件)优化器汇编程序:将汇编代码翻译成二进制代码(即汇编过程),并生成目标文件(.o文件)链接-载入器链接-载入器的用途载入目标文件,并确认main函数为初始进入点(即程序开始执行

2016-08-31 18:16:41 592

原创 刷过的算法题目汇总列表

1:测试

2016-08-31 17:33:24 468

原创 红黑树

定义与特点红黑树的目的:由于2-3查找树是一种多叉树,实现起来较为麻烦,因此产生了红黑树。红黑树的基本思想是用标准的二叉查找树(全由2-结点构成)和一些额外的信息(替换3-结点)来表示2-3查找树。我们将树中的结点(或指向该结点的链接)分成两种类型:红链接:将两端的两个2-结点链接起来构成一个3-结点黑链接:2-3树中的普通链接红结点:将该红结点和其父结点(黑结

2016-08-31 17:23:06 424

原创 epoll模型的实现原理

一、epoll模型概念与比较select、poll、epoll一样都是I/O多路复用技术。网络编程还有其他常用模型,如每连接一进程(PPC, 在Apache服务器中采用)、每连接一线程(TPC)。还有Windows中的IOCPselect/pselect, poll/ppoll与epoll的比较:1. 历史上,select最先出现,pselect是POSIX定义的psele

2016-08-28 23:04:33 1386

原创 epoll ET模式和LT模式分析

关于epoll的问题很早就像写文章讲讲自己的看法,但是由于ffrpc一直没有完工,所以也就拖下来了。Epoll主要在服务器编程中使用,本文主要探讨服务器程序中epoll的使用技巧。Epoll一般和异步io结合使用,故本文讨论基于以下应用场合:  主要讨论服务器程序中epoll的使用,主要涉及tcp socket的相关api。  Tcp socket 为异步模式,包括socket的异步读写,

2016-08-28 21:52:56 1362

原创 epoll编程框架

epoll简介epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获得较好的性能( 此时被监视的文件描述符数目非常大,与旧的 select 和 poll 系统调用完成操作所需 O(n) 不同, epoll能在O(1)时间内完成操作,所以性能相当高

2016-08-28 21:48:16 759

原创 Linux开发工具相关的资料

GDBGDB(一)GDB(二)MakefileMakefile 1Makefile 2

2016-08-28 19:44:12 481

转载 C/C++的mem函数和strcpy函数的区别和应用

C/C++的mem函数和strcpy函数的区别和应用mem系列函数是面试的时候常考的知识点,我们需要熟练掌握这三个函数的原理和代码实现,要能准确无误的写出代码。memcpy、memset和memset三个函数在使用过程中,均需包含以下头文件:1234//在C中#include //在C++中#include m

2016-08-25 18:33:15 637

原创 C++虚函数表一点理解

一 引言C++面向对象语言的一大特性就是抽象,在程序设计上的体现就是鼓励面向接口编程,而不要面向具体实现编程。这里所说的抽象和接口与C++的多态性密切相关。C++的多态分为静态多态(编译时多态)和动态多态(运行时多态)两大类。静态多态通过重载、模板来实现;动态多态就是通过本文的主角虚函数来体现的。虚函数是C++语言一个非常重要的特性,不同编译器对此特性的实现机制也略有差别,虽然具体实现细节

2016-08-25 17:07:32 1386 4

原创 C语言实现多态

C 还是 C++?C++ 中的多态是指「通过基类对象的指针或者基类对象的引用调用虚函数」,表现更多派生类的特性,但根据 C++ 多态的实现,我们发现这种方法存在一定的空间和效率的折损。不可否认,多态轻松解决了很多工程中遇到的问题,这与 pure C 的解决方法比起来,更为优雅。在考虑移植性上,C 的光芒要盖过 C++,但 C++ 的多态是可借鉴的,于是用 pure C 来模仿 C+

2016-08-25 12:27:21 695

转载 new和malloc的10点区别

C++中malloc和new的10点区别前言几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载;然后强行分析了

2016-08-25 12:19:28 390

原创 C++构造析构顺序

析构函数与构造函数的顺序继承先看看下面的代码#include using namespace std;class A{public: A(){cout "Construct A" endl;} ~A(){cout "Destruct A" endl;}};class C{public: C(){cout "Construct C" endl;

2016-08-25 11:53:14 1835

原创 C++ 对象生命周期

代码代码说明:类A,含构造函数和析构函数普通函数fun,函数体里新建了类A的局部自动对象FunObj和局部静态对象InStaObjmain方法新建了类A的局部自动对象MainObj,调用fun方法外面新建了A的的外部静态对象ExStaObj和外部对象GblObj[cpp] view plain copy #in

2016-08-25 11:23:26 3660

原创 C++的运行期多态和编译期多态

前言今日的C++不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C++发展中最为出彩的那部分。在面向对象C++编程中,多态是OO三大特性之一,这种多态称为运行期多态,也称为动态多态;在泛型编程中,多态基于template(模板)的具现化与函数的重载解析,这种多态在编译期进行,因此称为编译期多态或静态多态。在本文中,我们将了解:

2016-08-25 10:57:39 664

原创 C代码的内存布局

// code_area.cpp : //#include "stdafx.h"#include #include #include int a = 0; //全局初始化区char* p1; //全局未初始化区void main(){ int b; char s[] = "abc"; //s栈,"abc"静态存储区||拷贝副本到栈区||数组变量,分配的

2016-08-25 10:12:49 420

转载 TCP协议的滑动窗口具体是怎样控制流量的?

作者:郭无心链接:https://www.zhihu.com/question/32255109/answer/68558623来源:知乎著作权归作者所有,转载请联系作者获得授权。1)TCP滑动窗口分为接受窗口,发送窗口滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。

2016-08-24 23:12:40 3463

转载 TCP/IP详解-TCP连接建立和断开

前言        TCP 是面向连接的、可靠的字节流协议。因此,在传输数据之前通信双方必须建立一个 TCP 连接,建立 TCP 连接需要在服务器和客户端之间进行三次握手。通信双方数据传输完毕之后进行连接释放,释放连接需要在通信双方之间进行四次挥手。TCP 状态机        TCP 所谓的“连接”,只是通信双方维护一个“连接状态”,让它看上去好像有连接一样,

2016-08-24 16:30:35 1475

原创 Makefile知识点总结

1. make工具利用make工具可以自动完成编译工作,这些工作包括:如果修改了某几个源文件,则只重新编译这几个源文件如果某个头文件被修改了,则重新编译所有包含该头文件的源文件利用这种自动编译可以大大简化开发工作,避免不必要的重新编译。make工具通过一个称为Makefile的文件来完成并自动维护编译工作,Makefile文件描述了整个工程的编译、连接规则。回到

2016-08-24 15:24:34 813 2

原创 计算机网络-传输层

用户数据报协议UDPUDP数据报的特点 面向数据报不提供可靠性——并不能保证能否到达目的地应用程序必须关心IP数据报的长度——因为有可能要分片UDP封装 UDP首部 源端口号字段:发送进程目的端口号字段:接收进程UDP长度字段:UDP首部和UDP数据的字节长度,最小值为8字节(也就是说数据段可以为空)UDP校验和字段:覆盖UDP首部和UDP数据TCP端口号和

2016-08-24 12:28:49 859

转载 多进程和多线程的应用场景

大CC的博客内容目录:多进程模型多线程模型选用参考多线程和多进程模型的选用这里的线程指通过linux的pthread_create而产生的原生线程,线程资源很宝贵,能被操作系统的任务调度器看见的(不是python gevent、go gorouine里的概念); 我们讨论以下两种模型;多进程单线程模型(以下简称为多进程);单进程多线程模型(以下简

2016-08-24 09:18:50 9889

转载 进程和线程的简单解释-阮一峰老师

进程和线程的一个简单解释进程 (process)和 线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇 材料 ,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也

2016-08-23 09:25:37 1508

原创 线程安全和可重入

线程安全函数 • 概念:        线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 • 确保线程安全:        要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有的线程空间则主要包括栈和寄存器。因此,对于同一进程的不同线程来说,每个线

2016-08-22 21:53:33 413

原创 库函数实现总结

版权声明:本文为博主原创文章,未经博主允许不得转载。[cpp] view plain copy print?//strcpy()函数的使用  char *strcpy(char *dest,const char *src){      assert(dest != NULL && src != NULL);      char *

2016-08-22 09:44:46 319

转载 程序员面试金典目录

转:程序员面试金典-快课网1.1 判断一个字符串中的字符是否唯一1.2 字符串翻转1.3 去除字符串中重复字符1.8 利用已知函数判断字符串是否为另一字符串的子串2.1 从链表中移除重复结点2.2 实现一个算法从一个单链表中返回倒数第n个元素2.3 给定链表中间某结点指针,删除链表中该结点2.4 求由两个链表结点组成的数之和

2016-08-22 09:17:55 661

原创 常见链表问题整理

链表问题在面试过程中也是很重要也很基础的一部分,链表本身很灵活,很考查编程功底,所以是很值得考的地方。我将复习过程中觉得比较好的链表问题整理了下。下面是本文所要用到链表节点的定义:struct Node{ int data; Node* next;};1. 在O(1)时间删除链表节点题目描述:给定链表的

2016-08-11 18:05:51 744

原创 STL 中vector的reserve()和resize()

C++中vector的reserve()和resize()1 reserve()首先,从字面意思理解,reserve的意思是:预留。那么这个函数是如何控制空间的呢?vectorint> vec(10);cout << vec.size() << endl;cout << vec.capacity() << endl;vec.reserve(5);cout <<

2016-08-10 12:38:08 1086

原创 C++常见知识点复习-如何限制类对象只能在堆上或者栈上分配

怎么样才能控制对象分别只在堆上和栈上创建了1 限制类对象只能在堆上分配采用跟单例模式类似的方法:class test { test() { } ~test() { }public: static test* create() { return new test(); } void destroy()

2016-08-10 12:30:59 731

原创 C++常见知识点复习-赋值构造函数

(1) 一个空类或者空类对象的大小?由于对象在内存中必须占有一定的空间,因此,即使类是空的,这个类的对象也要占用一定的空间。VS和G++中空类的大小都是1。(2) 在空类中添加构造函数和析构函数,这个类对象的大小?这里要明确的是:一个类对象在内存中包含哪些成员?在C++中,类对象中只有非静态的数据成员和虚表指针(如果有的话)。也就是说,虽然函数好像包含在对象中,但是,经过编

2016-08-10 11:22:24 779

原创 单例模式

单例模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。实现单例模式的思路是:一个类能

2016-08-10 10:32:26 616

空空如也

空空如也

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

TA关注的人

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