自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

edison的专栏

天道酬勤!

  • 博客(48)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 Centos 关闭防火墙

CentOS 6:1) 永久性生效,重启后不会复原开启: chkconfig iptables on关闭: chkconfig iptables off2) 即时生效,重启后复原开启: service iptables start关闭: service iptables stopCentOS 7:systemctl start fir

2016-10-31 13:46:15 322

原创 双端队列deque

双端队列deque容器是一种优化了的、在序列两端对元素进行添加和删除操作的基本序列容器。它也允许适度快速地进行随机访问—就像vector一样,它也有一个operator[]操作符,然而,它没有vector的那种把所有的东西都保存在一块连续的内存块中的约束。deque的典型实现是利用多个连续的存储块(同时在一个映射结构中保持对这些块及其顺序的跟踪)。因此,向deque的两端添加和删除元素

2016-10-17 11:44:58 354

原创 基本序列容器:vector、list和deque

所有基本序列容器完全按照存进去的顺序持有对象。然而,对于不同的基本序列容器,他们的操作效率是不同的,因此如果想要操纵具有某种特点的序列,则应当针对不同的操作类型选择合适的容器。当调用resize()扩展一个序列时,新的元素使用序列内元素类型的默认构造函数,若果它们是内置类型,则使用0作为初始值。调用这个函数之后,就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符,或者

2016-10-17 11:01:21 294

原创 char *s 和 char s[] 的区别小结

char *s1 = "hello";char s2[] = "hello"; 【区别所在】char *s1 的s1,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。char s2[]的s2 是数组对应着一块内存区域,其地址和容量在生命期里不会改变,只有数组的内容可以改变

2016-10-09 15:32:46 460

转载 C++类自动转换

1.当构造函数只接受一个参数时,则该类可以与该参数类型相同的值转换。看下面这个简单的例子:12345678910111213141516// Woo.h file#ifndef WOO_H#define WOO_H class Woo{private: double mm;public: /*expli

2016-10-09 15:02:40 306

转载 static静态变量的理解

static静态变量的理解静态变量 类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释

2016-10-09 14:48:51 1037

转载 mysql (master/slave)复制原理及配置

1 复制概述      MySQL内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到

2016-09-01 10:53:50 269

原创 C++实现Undo和Redo框架(命令模式)

class Command{public: virtual bool execute() = 0; virtual bool Unexecute() = 0;};class operator1 : public Command{public: bool execute(){ std::cout << "Operator1" << std::endl; return true

2016-08-23 11:21:09 2584 3

原创 Tinyhttpd源码分析

1. 简介:tinyhttpd是使用c语言开发的超轻量级http服务器,通过代码流程可以了解http服务器的基本处理流程,并且涉及了网络套接字,线程,父子进程,管道等等知识点; 项目地址:http://sourceforge.net/projects/tinyhttpd/ 2. 流程介绍:(1) 服务器启动,等待客户端请求到来;(2)

2016-08-04 15:44:16 373

转载 Webbench源码分析

Web Bench是一个网站压力测试的工具。其最后更新时间是2004年,已经十年多了。其源代码总共才500多行,全部使用C语言编写,最多可以模拟上万个并发连接。其原理也比较简单,就是使用fork创建子进程,通过子进程来测试http连接,把测试结果写到管道,再有父进程读取管道信息来计算测试结果。流程图下:其源代码有2个文件组成socket.c是创建socket连接

2016-08-02 14:45:01 344

原创 自动类型转换

1、构造函数转换      如果定义一个构造函数,这个构造函数能把一个类型的对象(或引用)作为它的单个参数,那么这个构造函数允许编译器执行自动类型转换。 class One{public: One(){}};class Two{public: Two(One){}};void fun(Two){}int main(){ One one; fun(o

2016-07-21 10:39:22 244

原创 delete和delete[]的区别

一般我们都知道delete和new配套使用,delete[]和new[]配套使用。关于new[]和delete[],我们可以分两种情况:(1)为基本数据类型分配和回收空间;(2)为自定义类型分配和回收空间;可以通过一段代码看清楚它们之间的区别:class T {public: T() { cout << "constructor" << endl; } ~T() { co

2016-07-20 10:58:54 211

原创 重载++,--操作符

运算符重载的主要目的是为了让类对象能像普通数据类型一样能够进行加减乘除,自加自减等操作,非常直观方便。现在来回顾C++的自加减(分前置与后置)以及不等号非运算符,赋值运算符的重载。

2016-07-19 09:58:11 184

原创 函数指针传参和引用传参的区别

先看一段代码class CTest{public: CTest(int a, int b) : m_a(a), m_b(b){}private: int m_a; int m_b;};void fun(CTest* ab){ delete ab;}int main(){ CTest *ab = new CTest(1,2); fun(ab); if (

2016-07-15 15:19:10 1576

原创 合并有序链表

ListNode* mergeList(ListNode* pHead1, ListNode* pHead2){ if (pHead1 == NULL) { return pHead2; } else if (pHead2 == NULL) { return pHead1; } ListNode* pMergeHead = NULL; if (pHead1->m_nVal

2016-07-13 11:37:16 358

原创 判断循环链表

通过两个指针,一个每次递增一步(slow),一个每次递增两步(fast),如果两个指针相遇代表有循环。bool hasCycle(ListNode *head) { ListNode *slow = head; ListNode *fast = head; while (slow != NULL && fast != NULL && fa

2016-05-27 10:04:11 279

原创 一张图清晰表示32位机和64位机的各数据类型占用位数

数据类型ILP32模型ILP64模型char88short1616int3232long3264pointer3264

2016-05-24 10:15:28 447

原创 用两个队列实现栈

#include template class CStack{public: void AddToTail(const T&); T deleteHead();private: std::queue queue1; std::queue queue2;};template void CStack::AddToTail(const T& value){ queue1.p

2016-05-18 20:06:49 235

原创 用两个栈实现队列

#include <stack>template <typename T>class CQueue{public: CQueue(void){} ~CQueue(){} void appendTail(const T& node); T deleteHead();private: std::stack<T> stack1; std::stack<

2016-05-18 20:05:11 208

原创 替换字符串空格

本算法通过从后遍历字符串实现O(n)的时间复杂度替换字符串中的空格。void replaceSpace(char *str, int maxLength){ int length = strlen(str); int spaceNum = 0; for (int i = 0; i < length; i++) { if (str[i] == ' ') { spaceNu

2016-05-17 17:31:44 248

原创 C++单例模式的最实用写法

不多说,直接上代码。class NoCopyable{public: NoCopyable(){}private: NoCopyable(const NoCopyable&); NoCopyable& operator=(const NoCopyable&);};class CSingleton : public NoCopyable{public: stati

2016-05-17 16:14:24 1197

原创 侵入式智能指针

智能指针,就是利用对象的析构函数去执行资源释放,很久之前写的关于侵入式智能指针的笔记,今晚把它整理下。  资源共享型的智能指针有两种实现,一种是侵入式,一种是非侵入式。在教材里比较常见的是非侵入式的,它的实现完全放在智能指针模板里,模板类有一个用于保存资源类对象的指针变量,和一个用于记录资源对象使用计数的指针变量,这两个东西是所有的智能指针对象共享的,所以通过指针保存。而侵入式则不同,它的

2014-12-22 10:33:57 846

原创 关联容器存放的是指针时,自定义比较函数模板

struct DereferenceLess{ template bool operator()(PtrType pT1, PtrType pT2)const { return *pT1 < *pT2; }};

2014-12-09 17:43:38 355

原创 归并排序的一点见解

归并排序void Merge(int a[],int term[],int first,int last){ int mid = (first+last)>>1; int i = first; int j = mid + 1; int k = 0; while(i<=mid&&j<=last) { if(a[i]<=a[j]) term[k++] = a[i++];

2014-11-19 11:43:27 331

原创 最大子序列和

最大子序列和有几种时间复杂度的实现方法,本文在此列举先行实现方法:

2014-11-10 21:50:33 281

原创 引用与指针的一点见解

★ 相同点:1. 都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。★ 区别:1. 指针是一个实体,而引用仅是个别名;2. 引用使用时无需解引用(*),指针需要解引用;3. 引用只能在定义时被初始化一次,之后不可变;指针可变;4. 引用没有 const,指针有 const;5. 引用不能为空,指针可以为空;6. “sizeof

2014-11-05 23:57:57 327

原创 C++学习之路多态

多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。

2014-11-05 23:13:00 329

原创 Key-value数据库

Key-value数据库是一种以键值对存储数据的一种数据库,类似java中的map。可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值。Key-value数据库代表的有redis。Redis是一个Key-Value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。另外redis是

2014-11-05 23:06:41 17888

原创 全排列详解

最近笔试时遇到一道全排列的题,当时想到使用递归实现,da

2014-11-05 11:27:35 372

原创 关于字节对齐的一些理解

1、基本数据对齐                 在X86,32位系统下基于Microsoft、Borland和GNU的编译器,有如下数据对齐规则:                 a、一个char(占用1-byte)变量以1-byte对齐。                 b、一个short(占用2-byte)变量以2-byte对齐。                 c、一个in

2014-11-04 00:16:59 603

转载 浅谈设计模式

创建模式 结构模式 行为模式创建模式:对类的实例化过程的抽象。一些系统在创建对象时,需要动态地决定怎样创建对象,创建哪些对象,以及如何组合和表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。包含类的创建模式和对象的创建模式。结构模式:描述如何将类或对象结合在一起形成更大的结构。分为类的结构模式和对象的结构模式。类的结构模式使用继承把类,接口等组合在一起,以形成更大的结构。类

2014-11-03 19:43:09 680

转载 MYSQL简单入门

目录一、MySQL的相关概念介绍二、Windows下MySQL的配置配置步骤MySQL服务的启动、停止与卸载三、MySQL脚本的基本组成四、MySQL中的数据类型五、使用MySQL数据库登录到MySQL创建一个数据库选择所要操作的数据库创建数据库表六、操作MySQL数据库向表中插入数据查询表中的数据更新表中的数据删除表中的数据七、创建后的修改

2014-11-03 17:33:41 270

原创 MYSQL的一知半解

最近由于在忙着找工作,x

2014-11-03 00:07:13 472

原创 排序算法

/************选择排序*************/void selectsort(int str[],int n){ int i,j; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(str[i]>str[j]) { swap(str[i],str[j]); } } }}/********

2014-11-02 00:07:04 219

原创 两个栈实现一个队列&&两个队列实现一个栈

思路    s1是入栈的,s2是出栈的。入队列:直接压入s1即可出队列:如果s2不为空,把s2中的栈顶元素直接弹出;否则,把s1的所有元素全部弹出压入s2中,再弹出s2的栈顶元素

2014-11-01 23:54:28 263

转载 排序

一、选择题1.某内排序方法的稳定性是指(    )。A.该排序算法不允许有相同的关键字记录      B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法        D.以上都不对2.下面给出的四种排序法中(    )排序法是不稳定性排序法。    A. 插入           B. 冒泡              C. 二

2014-10-19 11:07:23 395

原创 内部排序 稳定排序 不稳定排序

(1)冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。(2)选择排序选择排序是给每个位置选择当

2014-10-15 17:10:50 2333

原创 C++学习笔记之覆盖、重载、多态的区别

覆盖:在基类中定义了一个非虚函数,然后在派生类中又定义了一个同名同参数同返回类型的函数,这就是覆盖了。在派生类对象上直接调用这个函数名,只会调用派生类中的那个。重载:在基类中定义了一个非虚函数,然后在派生类中定义一个同名,但是具有不同的参数表的函数,这就是重载。在派生类对象上调用这几个函数时,用不同的参数会调用到不同的函数,有可能会直接调用到基类中的那个。多态:在基类中定义了一

2014-09-17 21:23:36 256

原创 Windows&Linux下进程间通信的方式

1、管道管道又分无名管道和有名管道,无名gua

2014-09-17 20:07:09 494

原创 C++ 对象指针

C++中,声明对象指针时,并不调用构造函数的,只是为它分配一个地址,就像int a一样,只是分配一个地址,里面的东西是未知的。MyClass *b;并没有调用它的构造函数,只有MyClass *b = new MyClass才会调用,也就是等于把生成的地址赋给指针。

2014-09-14 21:35:46 503

LoadRunner8教程(免费)-王婷版

loadrunner使用教程

2015-09-22

数据结构算法演示系统

数据结构(c语言版)的演示系统,形象的展示算法的运行过程

2014-07-16

软件测试技术概论

软件测试技术概论课件,loadrunner教程,复习大纲,广东工业大学

2014-07-16

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

TA关注的人

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