3 fern_girl

尚未进行身份认证

暂无相关描述

等级
博文 126
排名 3w+

STL中的set和map

原文:http://blog.csdn.net/terence1212/article/details/52487656STL的set和map都是基于红黑树实现的,和stack和queue都是基于deque一样,它们仅仅是调用了RBTree提供的接口函数,然后进行外层封装即可。本篇博客理解起来比较轻松,set和map的源代码也不多,大家可以慢慢“品味”。另外,还会介绍multiset和multima

2017-09-05 15:29:48

webbench源码剖析

webbench是一种网站的压力测试工具,它是由Lionbridge公司开发,wenbench的标准测试可以向我们展示两项内容:每秒钟相应的请求数和每秒钟传输的数据量;。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,Java,CGI)进行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。Webbench最多可以模拟3

2017-09-04 21:04:34

常见的文本压缩算法

1.目前主要的文本压缩算法文本压缩是根据一定的方法对大量数据进行编码处理以达到信息压缩存储的过程,被压缩的数据应该能够通过解码恢复到以前的状态,而不会发生信息丢失的现象。2.文本压缩的分类3.算法描述3.1.Huffman编码1.原理简介huffman压缩是数据结构课程中的常见内容,是典型的贪心算法与二叉树的应用.压缩前,以ascii文本为例,每个字符如a,b…都采用等长的8位ac

2017-08-15 14:32:18

C语言实现C++的封装继承与多态

1、概述C语言是一种面向过程的程序设计语言,而C++是在C语言基础上衍生来了的面向对象的语言,实际上,很多C++实现的底层是用C语言实现的,如在VisualC++中的Interface其实就是struct,查找Interface的定义,你可以发现有这样的宏定义:#ifndefInterface#defineInterfacestruct#endifC++在语言级别上添加了很多新机

2017-07-29 07:53:16

学习字符串string类

学习C++->string类字符串一、string类字符串的介绍在程序设计中,字符串的使用十分频繁,C语言类型字符串(简称C-串)在使用与字符串的处理上较为复杂,C++为了在程序设计中更加方便的使用字符串特新增了一种string类型的字符串。  string类字符串为STL(StandardTemplateLibrary,标准模板库)中的一种自定义的数据类型,相对于C-

2017-07-25 22:36:51

面试题:C++实现一个不能被继承的类

一个子类继承一个父类,子类的构造函数和析构函数会自动调用父类的构造函数,先要求设计不能继承的类,即不允许子类的构造函数调用父类的构造函数和析构函数,方法如下:1.直接的方法:将父类的构造函数和析构函数设置为private成员函数私有成员只能被自身的类访问classA{public:staticA*Create(){returnnewA()

2017-07-15 20:51:48

obj : error LNK2019: 无法解析的外部符号 "public: __thiscall B::B(void)" (??0B@@QAE@XZ),该符

今天在写类的简单实现时突然遇见这样的问题,最后发现是因为自己忘记实现构造函数的析构函数classB:publicA{public:B();~B();};出现该错误:obj:errorLNK2019:无法解析的外部符号“public:__thiscallB::B(void)”(??0B@@QAE@XZ),该符号在函数_main中被引用,修改即解决了错误

2017-07-15 20:23:22

shell脚本实现彩色进度条的编写

我们在之前写过c/c++实现的进度条,原理相同,这里主要着重于彩色进度条的实现这里只是一个带颜色的进度条,主要是让我们知道颜色如歌设置代码:#!/bin/bashfunctionbar(){str=''i=0j=0arr=('|''/''-''\')while[$i-le100]doj=iletj%=4str=#${str}

2017-07-06 15:11:53

shell中的eval以及与 反引号``、$()的区别

本文转载自:shell中的evalshell中的eval功能说明:重新运算求出参数的内容。语  法:eval[参数]补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。参  数:参数不限数目,彼此之间用分号分开。1.eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的

2017-07-03 17:54:05

poll服务器---多路连接之 poll

1.poll与select不同在于描述符存储方式不同和参数类型不同结构体数组的管理:当每次有需要关心的描述符时,将其放入结构体中,每次有无效的描述符后,将其描述符置-1,下次poll函数会忽略它。当有新的描述符加入时,从头遍历结构体,将为-1的元素设为要关心的描述符事件状态。切记:当新的描述符加到结构体数组末尾时要更新关心描述符个数,即poll第二个参数。每次调用poll后,结构体元素reve

2017-07-01 19:12:57

epoll服务器---I/O多路转接之epoll

1、基本知识  epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关心的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口  epoll操作过程需要三个接口,分别如下: epoll_create:

2017-06-30 16:46:17

select服务器---I/O多路连接之select

现如今,提高网络服务器的性能,提高I/O的性能,我们知道I/O系统其实做了两件事,一是等待数据就绪,二是数据的搬移;尤其是远距离网络传输“等”状态尤其明显,所以提高I/O性能本质是减少等的比重,其越趋近于0,效率就越高;I/O模型中提供一种多路复用模型,一次等待多个文件描述符,只要存在就绪文件,就可进行读写,大大提高了I/O的性能;多路链接中存在三个特殊的函数select、poll、epoll,

2017-06-29 22:17:56

socketpair和dup---高级I/O

一、我们在学习进程间通信的时候学习过匿名管道pipe,匿名管道的特点:只能用于单向通信只能用于有血缘关系的两个进程,通常是父子进程生命周期随进程面向字节流具有同步机制我们现在学习一种新的管道socketpair,可以用于双向通信,也是用于父子进程,代码实现与匿名管道类似#include<stdio.h>#include<sys/types.h>#include<sys/socket.

2017-06-25 20:28:04

udp套接字及应用层udp超时重传

编写udp服务器1.注意要点:udp是无连接,不稳定,面向数据报的一种传输层协议;既然他不可靠为什么还要用呢?其一:当应用程序使用广播或多播时只能使用UDP协议;其二:由于他是无连接的,所以速度快如果一方的数据报丢失,那另一方将无限等待,解决办法是设置一个超时重传机制;建立UDP套接口时socket函数的第二个参数应该是SOCK_DGRAM,说明是建立一个UDP套接口;由于UDP是无连接

2017-06-25 19:00:52

进程池与线程池---实现服务器

1.池的概念由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接从池中取得所需资源比动态分配资源

2017-06-24 21:06:22

bind error : Cannot assign requested address,该如何处理

binderror:Cannotassignrequestedaddress代码:#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<stdlib.h>#include<netinet/in.h>#include<arpa/inet.h>#include<string.h>static

2017-06-24 08:07:41

tcp_socket绑定(bind)失败---Address already is use原因

我们前面介绍了三种tcp_server编写多进程多线程服务器编写,在测试这三个servet我们遇到一个问题,就是当我们绑定一个端口号后,ctrl-z结束掉server服务器,此时再次绑定该端口号会出现这样的出错提示:显示端口号正在被使用,可是我们已经关闭了服务器了,为什么不能使用呢?但过一端时间之后,该端口号又可以使用了,这又是为什么呢?IBM官网给出了具体解释linux套接字编程的五大隐患其中

2017-06-24 07:39:58

多进程多线程服务器(tcp_server)编写

编写客户/服务器1.编写单进程客户/服务器(Version1)代码清单:tcp_servet#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<stdlib.h>#include<netinet/in.h>#include<arpa/inet.h>#include<string.h>static

2017-06-23 23:21:25

TCP三次握手和四次挥手

TCP是面向来连接的协议,运输连接有三个阶段:建立连接(三次握手)、数据传送、释放连接(四次挥手);一、TCP的连接建立1.如图:建立链接(三次握手)具体步骤:(假设A是客户,B是服务器)A主动打开链接,B被动打开链接,此时两端的TCP处于CLOSED状态;B的TCP服务进程先创建传输控制块TCB,准备接收客户的请求,B处于LISTEN状态;A的客户进程首先创建传输控制块TCB,然后向B发送连

2017-06-20 10:38:41

URG和PSH区别以及TCP协议定时器

一、URG&PSH的区别TCP的报头信息有六个控制位,说明本段文的性质;分别为紧急URG、确认ACK、推送ACK、复位RST、同步SYN、终止FIN;今天我们来主要来介绍介绍PSH和URG的区分;1.URG是什么?URG表示紧急指针,与紧急指针字段搭配使用,当URG=1时,表示紧急指针字段有效。它告诉系统此报文有紧急数据,应尽快传送(相当于高优先级数据),而不按照原来的排序顺序来传送;

2017-06-20 08:23:14
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!