- 博客(76)
- 资源 (2)
- 收藏
- 关注
转载 size_type vs size_t
size_type: 由string类类型和vector类类型定义的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型 string抽象意义是字符串, size()的抽象意义是字符串的尺寸, string::size_type抽象意义是尺寸单位类型 string::size_type它在不同的机器
2014-10-25 13:50:01
798
转载 c++ pair
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair a("James", "Joy");也可以像上面一样在定义的时候直接
2014-10-25 13:30:35
525
转载 svn 常用命令
在开发中,除了在本机文件夹上进行svn更新外,在命令行中进行svn操作也非常关键,下面列举下网站摘抄的一些文档:1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件svn add fil
2014-10-16 00:58:39
609
转载 svn安装
一、SVN安装1.安装包$ sudo apt-get install subversion2.添加svn管理用户及subversion组$ sudo adduser svnuser$ sudo addgroup subversion$ sudo addgroup svnuser subversion 3.创建项目目录$ sudo mkdir /home/sv
2014-10-16 00:37:45
535
转载 lcs
首先将要看到如何运用动态编程查找两个 DNA 序列的最长公共子序列(longest common subsequence,LCS)。发现了新的基因序列的生物学家通常想知道该基因序列与其他哪个序列最相似。查找 LCS 是计算两个序列相似程度的一种方法:LCS 越长,两个序列越相似。子序列中的字符与子字符串中的字符不同,它们不需要是连续的。例如,ACE 是 ABCDE 的子序列,但不是它的子字
2014-08-24 12:10:44
648
原创 非递归的快速排序算法
void qsort2(int a[],int low ,int high){ stack st; if (low int mid =partition(a,low,high); if (low st.push(low); st.push(mid-1); }
2014-08-23 20:49:24
615
转载 海量数据处理的问题(1)
1. 题目:海量日志数据,提取出某日访问百度次数最多的那个IP。 方案:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。
2014-08-23 14:45:27
549
转载 字典树
字典树,又称单词查找树,Trie树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。它有三个基本性质,根节点不包含字符,除根节点外每一个节点都只包含一个字符,从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串,每个节点的所有
2014-08-22 22:02:49
530
转载 哈希树
我们选择质数分辨算法来建立一棵哈希树。选择从2开始的连续质数来建立一个十层的哈希树。第一层结点为根结点,根结点下有2个结点;第二层的每个结点下有3个结点;依此类推,即每层结点的子节点数目为连续的质数。到第十层,每个结点下有29个结点。如下图所示:同一结点中的子结点,从左到右代表不同的余数结果。例如:第二层结点下有三个子节点。那么从左到右分别代表:除3余0,除3余1,除3
2014-08-22 21:05:41
518
转载 PageRank(转载)
PageRank对网页排名的算法,曾是Google发家致富的法宝。以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理。一、什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(google 产品经理),因为他是这个算法的发明者之一,还是google CEO(^_^)。Page
2014-08-12 00:37:35
965
原创 c++抽象类
抽象类 纯虚函数(pure virtual function)是指被标明为不具体实现 的虚拟成员函数。它用于这样的情况:定义一个基类时,会遇到无法 定义基类中虚函数的具体实现,其实现依赖于不同的派生类。定义 纯虚函数的一般格式为: virtual 返回类型 函数名(参数表)=0; 含有纯虚函数的基类是不能用来定义对象的。纯虚函数没有实现 部分,不能产生对象,所以
2014-08-10 20:36:40
627
转载 C++ 虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。
2014-08-10 19:59:59
450
原创 指针和引用的分别
指针和引用有什么分别;如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?(1) 引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值.(2) 不存在NULL引用,引用必须与合法的存储单元关联;而指针则可以是NULL.(3) 引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用;而指针在任何
2014-08-09 22:08:49
533
转载 并发连接数目
在做Socket 编程时,我们经常会要问,单机最多可以建立多少个 TCP 连接,本文将介绍如何调整系统参数来调整单机的最大TCP连接数。Windows 下单机的TCP连接数有多个参数共同决定,下面一一介绍:最大TCP连接数[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
2014-06-16 15:21:45
634
转载 并发访问(一)
HubbleDotNet 推出一年多来,得到了大量用户的支持和使用,其中有些用户的搜索访问量较大,在使用过程中有时会因为同时并发访问过大,出现 Too many connects on server 这个错误,为了缓解这个问题,HubbleDotNet 的 V1.0.4.0 版本做了一些改进,本文将介绍这个改进即相关原理。这篇文章写的比较早,现在解决Too many connects on
2014-06-16 15:20:39
1116
原创 C++虚函数
1.在一般情况下,指向一种类型对象的指针不允许指向另一种类型的对象,然而指向基类对象的指针可以指向该基类的共有派生类对象(反过来不成立),这是运行时,多态的基础。指向基类队象的指针指向派生类对象后,可以访问派生类中有基类继承下来的成员,但不能访问那些派生类对象自己增加的成员。2.一个含有虚函数的类称为多态类。3.虚函数就是在一个类中用virtual定义的成员函数。基类的虚函数在派生类中仍是
2014-05-29 02:14:46
1392
转载 快速排序的改进
快速排序的改进快速排序最坏情况下,要比较O(n^2)次,但平均性能为nlogn,基本达到了比较类排序所需时间的的下界。核心代码为:void qSort(int *data, int begin, int end){ int pivot, i, j; if(begin>=end) return; i = begin;
2014-05-28 22:24:39
3521
1
转载 网络编程入门(linux)
LINUX: 网络编程,一定离不开套接口;那什么是套接口呢?在Linux下,所有的I/O操作都是通过读写文件描述符而产生的,文件描述符是一个和打开的文件相关联的整数,这个文件并不只包括真正存储在磁盘上的文件,还包括一个网络连接、一个命名管道、一个终端等,而套接口就是系统进程和文件描述符通信的一种方法。目前最常用的套接口是字:字节流套接口(基于TCP)和数据报套接口(基于UDP),当然还有原
2014-05-22 20:12:07
498
原创 iptables apache2
Apache2 iptables安装指令:sudo apt-get install apache22.产生的启动和停止文件是:/etc/init.d/apache23.启动:sudo apache2ctl -k start4,停止:sudo apache2ctl -k stop5,重新启动:sudo apache2ctl -k restart
2014-05-21 11:21:51
870
原创 sendmail danted
Sendmail安装Sudo apt-get install sendmailecho "hello" | mail -s HELLO shaowangzhen@gmail.com向自己的邮箱发送邮件用wireshark 抓包找到自己发送的邮件 dante-server安装Sudo apt-get insta
2014-05-21 11:20:43
2143
原创 AES SHA-1 SM3 MD5
AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。输入:128bit 的消息分组输出:128bit 的密文分组密钥长度及圈数128 10192 12256 14消息 与 密钥addroundkey//添加轮密钥 每个字节与轮密钥的对应字节进行异或运算subbytes// 字替代 经过s盒,即对每个字节进行替换,非线性部件,1
2014-05-21 00:34:26
3002
原创 代理服务器Squid3的配置
1.安装squid3sudo apt-get install squid32,配置squid3sudo cd /etc/squid3sudo vim squid.conf/http_accessN为向下查找 找到http_access deny all 把deny改成allow3启动squid3Sudo service squid3 start关闭S
2014-05-21 00:18:55
1684
原创 Iptables防火墙配置
Iptables防火墙配置安装防火墙sudo apt-get install iptables查看状态sudo iptables --listsudo iptables -A OUTPUT -p tcp --dport 80 -j DROP浏览器不能上网清除防火墙设置Sudo iptables -FSudo iptables -D OUTPUT
2014-05-21 00:16:59
1150
原创 ubuntu14.04下nessus的安装
环境:ubuntu 14.041.在http://www.tenable.com/products/nessus/select-your-operating-system下载 nessus home 版 2、安装:第二步下载成功的.deb 文件,直接双击安装,或者使用命令 dpkg -i Nessus-5.0.2-ubuntu1110_i386.deb3、获得注册码:下载的同时
2014-05-20 13:08:01
1700
原创 new和delete运delete和delete[]&nb…
new和delete运算符用于动态分配和撤销内存的运算符new用法: 1. 开辟单变量地址空间 1)new int; //开辟一个存放数组的存储空间,返回一个指向该存储空间的地址.int *a= new int 即为将一个int类型的地址赋值给整型指针a. 2)int *a = new int(5
2014-05-19 15:58:42
532
原创 sizeof vs strlen
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,
2014-05-19 15:58:40
386
原创 C++ 检测内存泄露
C++ 检测内存泄露 C++程序的复杂性很大一部分在于他的内存管理,没有C#那样的垃圾回收机制,内存管理对初学者来说很困难。经常会出现内存泄露的情况。那么我们写程序如何避免内存泄露呢?首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。 本文描述了如何检测内存泄露。最主要的是纯C,C++的程序如何检测内存泄露。 现在有很多专业的检测工具,比如比较
2014-05-19 15:58:35
485
原创 内存泄漏
内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。 内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃。所以“内存泄漏”是从操作系统的角度来看的。
2014-05-19 15:58:33
390
原创 进程死锁
进程死锁如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的发生,也就是进程不能实现同步。死锁原因产生死锁的原因可归结为如下两点:(1)竞争资源。当系统中供多个进程共享的资源如打印机、公用队列等,其数目不足以满足进程的需要时,会引起诸进程的竞争而产生死锁。(2)进程间推进顺序非法。进程在运行过程中,请求和释放资源的顺
2014-05-19 15:58:29
457
原创 heap和stack的差别
一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量
2014-05-19 15:58:27
417
原创 extern 的实用方法
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。1. 在源文件A里定义的函数,在其它源文件里是看不见的(即不能访问)。为了在源文件B里能调 用这个函数,应该在B的头部加上一个外部声明:extern 函数原型; 这样,在源文件B里也可以调用那个函
2014-05-19 15:58:25
491
原创 设置root 密码
安装完Ubuntu后忽然意识到没有设置root密码,不知道密码自然就无法进入根用户下。到网上搜了一下,原来是这麽回事。Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码。我们可以在终端输入命令 sudopasswd,然后输入当前用户的密码,enter,终端会提示我们输入新的密码并确认,此时的密码就是root新密码。修改成功后,输入命令su root,再输入新的密码就
2014-05-19 15:58:20
430
原创 c++中 类的相关事项(1)
1.类中 只有静态成员(函数)可以用类直接显示的调用2.类中 静态成员变量static 在类外 必须重新声明并且初始化(只有这时才能给静态成员变量分配内存)3.类中 数据成员在声明时不允许使用表达式进行初始化;4.类中 类中数据成员在声明时,不允许使用auto,register,extern进行修饰5.常量成员函数可以改变局部变量和全局变量的值,但不允许修改本类中数据成员的值。(常成员函数
2014-05-19 15:58:18
463
原创 linux 软件的安装
刚开始使用Ubuntu的用户时常有这样的问题,我要安装新软件怎么办?.exe文件在哪里,怎么软件有这么多格式?RPM包,.tar.gz是什么?怎么就是安装不了啊?等等等等.的确,在Windows下安装文件只需要双击即可,所以很多人在Ubuntu下觉得很不习惯.事实上,使用Ubuntu平台下的新利得软件包管理器安装大部分软件比在Windows平台下更加简单,操作更加容易.当然,也有很多软件Ub
2014-05-19 15:58:16
532
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人